sondmk header
SQL SERVER เบื้องต้น

SQL SERVER :: SQL Create Function (Scalar Function)

Post by Goborijung at 2019-12-16 16:23:19 | ID: 328

/* 
Scalar Functions 
เป็นฟังก์ชั่นที่ให้ค่าผลลัพธ์แบบส่งกลับเพียงค่าเดียว โดยจะมีการส่งผ่าน Parameter เข้าไป หรือ ไม่มีก็ได้
*/

/* Ex1 */
USE [GSSv2_Prod]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION udf_GetThaiDate
(
	@Date datetime
)
RETURNS varchar(20)
AS
BEGIN
	DECLARE @ThaiDate varchar(20)
	DECLARE @ThaiMonth varchar(60)
	SET @ThaiMonth = 'ม.ค ก.พ มี.ค เม.ย พ.ค มี.ย ก.ค ส.ค ก.ย ต.ค พ.ย ธ.ค '
	SET @ThaiDate = CAST(DAY(@Date) AS varchar(2)) + ''
	+ SUBSTRING(@ThaiMonth,(MONTH(@Date)*5) -4,5) + ''
	+ CAST(YEAR(@Date) +543 AS varchar(4))
	RETURN @ThaiDate
END
GO
/* USE : SELECT dbo.udf_GetThaiDate(GETDATE()) */


/* Ex2 */
CREATE FUNCTION GetDiffAmount
(	
	@pAmount1 DECIMAL(18,2),
	@pAmount2 DECIMAL(18,2)
)
RETURNS DECIMAL(18,2) 
AS BEGIN
	DECLARE @diffAmt DECIMAL(18,2)
	SET @diffAmt = @pAmount1 - @pAmount2
	RETURN @diffAmt
END
GO
/* USE : SELECT dbo.GetDiffAmount(10,15) */

SQL SERVER :: SQL JOIN (รวมคำสั่ง SQL JOIN แบบต่างๆ)

Post by Goborijung at 2019-12-10 10:40:47 | ID: 263

คำสั่ง JOIN
JOIN เป็นการเชื่อมข้อมูลตั้งแต่ 2 ตารางขึ้นไป โดยใช้คำสั่งคิวรี่เพี่ยงคำสั่งเดียว ผลลัพธ์ของคิวรี่ที่ได้จะเป็นข้อมูลชุดใหม่
ที่ได้จากการเชื่อมของตาราง

ประเภทของการ JOIN จะประกอบไปด้วย

INNER JOIN
OUTER JOIN
CROSS JOIN
SELF JOIN

INNER JOIN

เป็นการเชื่อมตั้งแต่ 2 ตารางขึ้นไปเข้าด้วยกัน โดยอาศัยคอลัมที่มีความสัมพันธ์กัน มาทำการเชื่อมโยงข้อมูลเข้าด้วยกัน เงื่อนไขคือ ดึงเฉพาะคอลัมที่มีข้อมูลตรงกัน จากทั้งสองตาราง Ex. SELECT * FROM table_a INNER JOIN table_b ON table_a.ProductID = table_b.ProductID หรือ SELECT u.UserName,u.NickName,s.Name AS SectionName FROM [User] u INNER JOIN Section s ON u.Section = s.OID WHERE u.NickName IS NOT NULL

OUTER JOIN

เป็นการเชื่อมตั้งแต่ 2 ตารางขึ้นไปเข้าด้วยกัน ผลของการเชื่อมจะยึดตามรารางใดตารางหนึ่งตามที่กำหนด หรือ นำรายการของตารางทั้งหมดมารวมกัน ประกอบด้วย LEFT OUTER JOIN เชื่อมโดยยึดตารางทางด้านซ้ายมือของคำสั่ง RIGHT OUTER JOIN เชื่อมโดยยึดตารางทางด้านขวามือของคำสั่ง FULL OUTER JOIN เชื่อมตารางทางด้านซ้ายมือและขวามือเข้าด้วยกัน

LEFT OUTER JOIN

เป็นการเชื่อมตาราง ตั้งแต่ 2 ตารางเข้าด้วยกัน โดยจะตรวจสอบข้อมูลในคอลัมน์ที่ใช้เป็นเงื่อนไขในการเชื่อมโยงทั้ง 2 ตาราง โดยจะแสดงแถวข้อมูลจากตารางซ้ายทั้งหมด ส่วนตารางฝั่งขวา จะแสดงเฉพาะแถวที่มีเงื่อนไขตรงกับตารางฝั่งซ้ายเท่านั้น Note:: ตารางฝั่งซ้าย (ตารางที่ถูกประกาศก่อน) จะถูกแสดงทั้งหมด ตารางฝั่งขวา (ตารางที่ถูกประกาศทีหลัง) จะแสดงเฉาะแถวที่มีเงื่อนไขของข้อมูล ตรงกันกับตารางทางฝั่งซ้ายเท่านั้น Ex. SELECT * FROM table_a AS a LEFT OUTER JOIN table_b AS b ON a.column_name = b.column_name Ex. SELECT * FROM Section AS s LEFT OUTER JOIN [User] AS u ON s.OID = u.Section WHERE u.NickName IS NOT NULL

RIGHT OUTER JOIN

เป็นการเชื่อมตาราง ตั้งแต่ 2 ตารางเข้าด้วยกัน โดยจะตรวจสอบข้อมูลในคอลัมน์ที่ใช้เป็นเงื่อนไขในการเชื่อมโยงทั้ง 2 ตาราง โดยจะแสดงแถวข้อมูลจากตารางขวาทั้งหมด ส่วนตารางฝั่งซ้าย จะแสดงเฉพาะแถวที่มีเงื่อนไขตรงกับตารางฝั่งขวาเท่านั้น Note:: ตารางฝั่งซ้าย (ตารางที่ถูกประกาศก่อน) จะถูกแสดงทั้งหมด ตารางฝั่งขวา (ตารางที่ถูกประกาศทีหลัง) จะแสดงเฉาะแถวที่มีเงื่อนไขของข้อมูล ตรงกันกับตารางทางฝั่งซ้ายเท่านั้น Ex. SELECT * FROM table_a AS a RIGHT OUTER JOIN table_b AS b ON a.column_name = b.column_name Ex. SELECT * FROM Section AS s RIGHT OUTER JOIN [User] AS u ON s.OID = u.Section WHERE u.NickName IS NOT NULL

FULL OUTER JOIN

เป็นการเชื่อมตาราง ตั้งแต่ 2 ตารางเข้าด้วยกัน โดยนำข้อมูลในตารางทั้งฝั่งซ้ายมือ และ ขวามือมารวมกัน Ex. SELECT * FROM table_a AS a FULL OUTER JOIN table_b AS b ON a.column_name = b.column_name Ex. SELECT * FROM Section AS s FULL OUTER JOIN [User] AS u ON s.OID = u.Section WHERE u.NickName IS NOT NULL

CROSS JOIN

เป็นการเชื่อมตารางตั้งแต่ 2 ตารางขึ้นไป โดยนำทุกๆแถวของตารางหนึ่ง มาเชื่อมกับข้อมูลทุกๆแถวของอีกตารางหนึ่ง ซึ่ง จำนวนแถวที่ได้ จะเท่ากับผลคูณของตารางที่นำมาเชื่อมกัน Ex. SELECT * FROM Section AS s CROSS JOIN [User] AS u WHERE u.NickName IS NOT NULL

SQL SERVER :: SQL SERVER All Function แบ่งตามกลุ่มใหญ่ๆ

Post by Goborijung at 2019-12-10 14:12:06 | ID: 267

SQL SERVER All Function แบ่งตามกลุ่มใหญ่ๆ
1. Aggregate Function
2. Mathematical Function
3. String Function
4. Date Function
5. Ranking Function
6. Null Function
7. Converting Data Type Function
8. System Function

SQL SERVER :: SQL การขอดูคำสั่งใน VIEW

Post by Goborijung at 2019-12-10 11:55:36 | ID: 266

EXEC sp_helptext 'VCartonMovement'

SQL SERVER :: SQL คำสั่ง Operator ที่ใช้ในการเปรียบเทียบข้อมูล

Post by Goborijung at 2019-12-06 16:26:07 | ID: 227

=
!= หรือ <>
<
<=
!<
>
>=
!>
NOT จะแสดงข้อมูลที่ตรงกันข้ามกับเงือนไข
ALL  ตรวจสอบค่าด้านซ้าย กับ ข้อมูลทั้งหมดทุกแถวที่ได้จาก subquery
ANY หรือ SOME  ตรวจสอบค่าด้านซ้าย กับ ข้อมูลบางแถวที่ได้จาก subquery
BETWEEN ใช้ทดสอบค่าของช่วงของข้อมูลที่จะค้นหา โดยใช้ AND เป็นตัวเชื่อมระหว่างค่าทั้งสอง
EXISTS ใช้ทดสอบผลลัพธ์ที่ได้จาก subquery ร่วมกับคิวรี่ภายนอก
IN ใช้ในการทดสอบค่าของข้อมูล ที่มี อยู่ในรายการที่กำหนดเท่านั้น
IS NULL ใช้ทดสอบข้อมูล ที่เป็น NULL
IS NOT NULL ใช้ทดสอบข้อมูลที่ไม่เป็น NULL
LIKE  ใช้ทดสอบค่าบางส่วนของข้อมูลที่มีค่าตรงกับที่กำหนด เช่น LIKE '%Admin%'

SQL SERVER :: SQL คำสั่งขอดูรายชื่อ VIEW ในฐานข้อมูล

Post by Goborijung at 2019-12-10 11:50:35 | ID: 265

SELECT * FROM INFORMATION_SCHEMA.VIEWS

SQL SERVER :: SQL คำสั่งในการเรียกดู Temporary #Tables

Post by Goborijung at 2019-12-06 13:48:34 | ID: 220

SELECT name FROM tempdb.dbo.sysobjects WHERE name LIKE '#%'

SQL SERVER :: sqlsrv_num_rows()

Post by Goborijung at 2020-01-14 13:37:25 | ID: 366

$qry = sqlsrv_query($conn,$sql,array(),array( "Scrollable" => 'static' ) );

หรือ

$sql = "SELECT * FROM TableName";
$qry =  sqlsrv_query($conn,$sql,array(),array("Scrollable" => 'static'));
$numrow = sqlsrv_num_rows($qry);

SQL SERVER :: SQRT(flot_expr) Function หาค่ารากที่สอง เมือ flot_expr มีค่าเป็นบวก

Post by Goborijung at 2019-12-10 15:01:31 | ID: 283

SQRT(flot_expr) หาค่ารากที่สอง เมือ flot_expr มีค่าเป็นบวก
Ex.
SELECT SQRT(10) //Ouput : 3.1622776601684

SQL SERVER :: STDEV Function หาค่าส่วนเบี่ยงเบนมาตรฐาน

Post by Goborijung at 2019-12-10 14:18:56 | ID: 274

STDEV หาค่าส่วนเบี่ยงเบนมาตรฐาน
Ex.
SELECT CONo ,STDEV(ORDQTYPCS) AS stdev_ordqty
FROM TM_SO
GROUP BY CONo
ORDER BY CONo

<<<...6789101112131415>>>

Framework

Library


เครื่องมือพัฒนาเว็บ



การออกแบบและพัฒนาเว็บไซต์


Download SourceCode



copyAllright © 2016 soundmk.com