# อ้างอิงจาก table NorthWind.Orders
# select แบบธรรมดา
SELECT [OrderID]
,[CustomerID]
,[EmployeeID]
FROM [Northwind].[dbo].[Orders]
# ผลลัพจะได้ทั้งหมด 830 record
OrderID CustomerID EmployeeID
10248 VINET 5
10249 TOMSP 6
10250 HANAR 4
. . .
. . .
. . .
11077 RATTC 1
# แต่ถ้าเราต้องการให้แสดงหมายเลข row ข้างหน้าด้วย แบบนี้อ่ะ
# ผลลัพจะได้ทั้งหมด 830 record
Rank OrderID CustomerID EmployeeID
1 10248 VINET 5
2 10249 TOMSP 6
3 10250 HANAR 4
. . . .
. . . .
. . . .
830 11077 RATTC 1
# จะต้อง select ไง ไมโครซอร์ฟ มีคำตอบให้เราด้วยอ่ะ
# เราก็แก้ใหม่เป็นประมาณเนี๋ย
SELECT rank()
OVER (ORDER BY [OrderID]) as rank
,[OrderID]
,[CustomerID]
,[EmployeeID]
FROM [Northwind].[dbo].[Orders]
ORDER BY rank
# ผลที่ได้น่าจะเหมือนกันนะ ไม่แน่ใจเพราะไม่ได้ ตรวจทุก record อ่ะ
# ไม่ใช่แค่ select แบบนี้เท่านั้นที่ไ้ด้ row number ยังมีแบบอื่นอีก แต่ไม่ค่อยเข้าใจเลย
Refer:
No comments:
Post a Comment