SQL SELECT DISTINCT
เป็นคำสั่ง SELECT ชนิดหนึ่งที่ใช้ในการตัดค่าที่ซ้ำกันออกให้แสดงเพียงแค่ค่าเดียว
ดังตัวอย่างเปรียบเทียบดังนี้
test_distinct.asp
strSQL = "SELECT Profile_ID, Profile_Name, Profile_Location
"
strSQL = strSQL & "FROM Profile"
strSQL = strSQL &
" ORDER BY Profile_ID ASC;" |
|
จากคำสั่งด้านบนเป็นการเลือกค่าของฟิลด์
Profile_ID, Profile_Name, Profile_Location
จากตาราง
Profile และเรียงลำดับจากน้อยไปมากตามค่าของ Profile_ID ซึ่งผลลัพธ์จะได้ดังนี้
Profile_ID |
Profile_Name |
Profile_Location |
|
1 |
user1
|
Hongkong |
2 |
user2
|
Jagata |
3 |
user3
|
Jagata |
4 |
user4
|
Hongkong |
5 |
user5
|
Hongkong |
6 |
user6
|
Hongkong |
7 |
user7
|
Hongkong |
8 |
user8
|
Hongkong |
9 |
user9
|
Bangkok |
10 |
user10
|
London |
|
|
จะเห็นว่าในส่วนของ Profile_Location
จะมีชื่อที่ซ้ำกันอยู่ถ้าเราใช้คำสั่ง DISTINCT ค่าที่ซ้ำจะแสดงออกมาเพียงครั้งเดียวดังนี้
strSQL = "SELECT DISTINCT Profile_Location "
strSQL = strSQL & "FROM
Profile" |
|
Profile_Location |
|
Bangkok |
Hongkong |
Jagata |
London |
|
|
สาเหตุที่ต้องเลือกแสดงเฉพาะค่าของ Porfile_Location เพียงค่าเดียวเพราะเป็น
ฟิลด์ที่มีค่าซ้ำกันถ้าใช้คำสั่งเลือกทั้ง 3 ฟิลด์
strSQL = "SELECT DISTINCT Profile_ID, Profile_Name, Profile_Location
"
strSQL = strSQL & "FROM Profile"
strSQL = strSQL & " ORDER
BY Profile_ID ASC;" |
ค่าที่ออกมาก็จะเป็นดังตารางแรกเพราะค่าของ
Profile_ID และ Profile_Name ไม่มีค่าซ้ำแม้ว่า Porfile_Location จะมีค่าซ้ำก็ตาม
SQL
SELECT AS
เป็นคำสั่ง SELECT ชนิดหนึ่งที่ใช้ในการเปลี่ยนชื่อให้กับคอลัมน์ในการเรียกดูซึ่งมีรูปแบบดังนี้
SELECT ชื่อคอลัมน์(ฟิลด์)ในตาราง
As ชื่อคอลัมน์ใหม่ ,[...n] FROM table_source |
|
test_as.asp
strSQL = "SELECT Profile_ID As หมายเลข, Profile_Name As
ชื่อ, Profile_Age As อายุ "
strSQL = strSQL & "FROM Profile "
strSQL = strSQL & "ORDER BY Profile_ID ASC;"
|
|
จากคำสั่งนี้เราจะเลือกที่ตาราง Profile ในฟิลด์ Profile_ID,
Profile_Name , Profile_Age โดยเปลี่ยนชื่อคอลัมน์ในการ
View ตามลำดับดังนี้
-
Profile_ID
เปลี่ยนเป็น หมายเลข
-
Profile_Name เปลี่ยนเป็น
ชื่อ
-
Profile_Age
เปลี่ยนเป็น อายุ
ซึ่งผลที่ได้จะเป็นดังนี้
หมายเลข |
ชื่อ |
อายุ |
|
1 |
user1
|
23 |
2 |
user2
|
25 |
3 |
user3
|
27 |
4 |
user4
|
16 |
5 |
user5
|
34 |
6 |
user6
|
36 |
7 |
user7
|
24 |
8 |
user8
|
26 |
9 |
user9
|
28 |
10 |
user10
|
30 |
|
|
|