[DB2] SELECT TOP(1) IN DB2

จริงๆวางโครงบทความนี้มานานและ แต่เพิ่มจะมีโอกาศได้เขียนจริงๆจังๆ ซะที เข้าที่ปัญหาเลย คือ ว่าเราต้องการ 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.