oracle distinct อีกแบบ

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

Moderator: mindphp

ภาพประจำตัวสมาชิก
jataz2
PHP Super Member
PHP Super Member
โพสต์: 275
ลงทะเบียนเมื่อ: 22/02/2011 11:48 am

oracle distinct อีกแบบ

โพสต์ที่ยังไม่ได้อ่าน โดย jataz2 »

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

โค้ด: เลือกทั้งหมด

 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 ด้านล่างนี้จึงจะได้

โค้ด: เลือกทั้งหมด

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
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 76