[DB2] SELECT TOP(1) IN DB2

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