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