จริงๆวางโครงบทความนี้มานานและ แต่เพิ่มจะมีโอกาศได้เขียนจริงๆจังๆ ซะที เข้าที่ปัญหาเลย คือ ว่าเราต้องการ Query เพื่อดึงข้อมูลในแถวแรกขึ้นมาก หากเป็น MySQL, MS SQL Server เราสามารถใช้คำสั่ง TOP(จำนวนแถวที่ต้องการได้เลย) แต่ถ้าเป็น DB2 จะมีคำสั่ง (ใช้ได้กับ DB2 8.1 ขึ้นไป) โดยเพิ่มเข้าไป ดังนี้ครับ
FETCH FIRST 1 ROW ONLY
[sql]
-- FIRST SINGLE ROWS
SELECT * FROM <TABLE_NAME>
FETCH FIRST 1 ROW ONLY
-- FOR MULTIPLE ROWS
SELECT * FROM <TABLE_NAME>
FETCH FIRST <NUM> ROWS ONLY --NUM คือ จำนวนแถวที่ต้องการ
[/sql]
ตัวอย่างการใช้งานจริง โดยเทียบ SYNTAX เมื่อใช้กับ MS SQL Server ครับ
- DB2
[sql]
SELECT USERID, COMPUTERNAME, EODOPERATION
FROM EODQUEUE
ORDER By EODQUEUETIME
FETCH FIRST 1 ROW --TOP(1)
WITH RR
[/sql] - MS SQL Server
[sql]
SELECT TOP(1) USERID, COMPUTERNAME, EODOPERATION
FROM EODQUEUE
WITH(ROWLOCK,UPDLOCK, READPAST)
ORDER By EODQUEUETIME
[/sql]
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts to your email.