oracle distinct อีกแบบ

เกี่ยวกับ ปัญหาการใช้งาน การติดตั้ง ฐานข้อมูล MySql Oracle MSSQL ect...
การเขียน คำสั่ง SQL เพื่อดึกข้อมูล บอร์ดนี้ควรระบุโครงสร้างตารางของท่านในคำถามด้วยนะ

Moderator: mindphp

User avatar
jataz2
PHP Super Member
PHP Super Member
Posts: 235
Joined: 22/02/2011 11:48 am

oracle distinct อีกแบบ

Post by jataz2 » 24/10/2019 11:57 am

ยกตัวอย่างข้อมูล ตาราง Employee มีข้อมูลหน้าตาเหล่านี้ครับ
id, name, birthdate
1, SOMKID,10/12/2000
1, SOMKID,10/12/2000
1, SOMKID,10/12/1999
ถ้าเรา

Code: Select all

 select distinct id,name,birthdate  from tb_employee
จะได้
id, name, birthdate
1, SOMKID,10/12/2000
1, SOMKID,10/12/1999
สังเกตุว่าผลของ คิวรีจะได้ผลลัพท์กลับมา 2 แถว
id และ name เหมือนกัน แต่ค่า birthdate มีค่าไม่เหมือนกันแถวที่ 3 ปีเกิดเป็น 1999


ถ้าเราต้องการ select id,name, birthdate เอาทั้ง 3 คอลัมน์
และต้องการ id,กับ name หากมีค่าเดียวกันเอามาแค่ record เดียว
ต้องใช้ sql ด้านล่างนี้จึงจะได้

Code: Select all

select  id,name, birthdate from tb_employee tb1
where rowid = (
                         select min(rowid) from tb_employee  tb2
                         where tb2.id = tb1.id
                         and tb2.name = tb2.name
                       )
id, name, birthdate
1, SOMKID,10/12/2000


ทีนี้มันจะเลือกหยิบเอาปีเกิด แบบไหน ก็ขึ้นอยู่กับที่เราจะสั่งให้ order by birthdate นะครับ

  • Similar Topics
    Replies
    Views
    Last post

Return to “SQL - Database”

Who is online

Users browsing this forum: No registered users and 4 guests