SS090802 - ใช้ TOP หากใช้ Order by ใน Subquery

Modified on 2009/08/10 17:17 by ninefyi — Categorized as: SQL Server

วันนี้มีเพื่อนที่ทำงานอยู่ด้วยกัน มีความต้องการที่จะ เรียงข้อมูลภายใน sub query ก่อนแสดงผล แต่ทำไปแล้วรันไม่ผ่าน ก็เลยไปค้นหาแล้วเจอว่า ถ้าต้องการจะ เรียงข้อมูลภายใน sub query ต้องใช้ TOP หรือ FOR XML ด้วยนะครับ ดังตัวอย่างต่อไปนี้

CREATE TABLE Table1(Col1 INT, Col2 CHAR(1))

INSERT INTO Table1 (Col1, Col2)
SELECT 1, 'A'
UNION ALL
SELECT 2, 'Z'
UNION ALL
SELECT 3, 'X'
UNION ALL
SELECT 4, 'B'

SELECT * FROM
(
	SELECT 
	TOP 100 PERCENT -- ลอง comment บรรทัดนี้ดูก่อนนะครับ
	*
	FROM Table1
	ORDER BY Col2
)  AS CTE

DROP TABLE Table1