ในบางกรณีที่ต้องการเปลี่ยนแปลงข้อมูลในคอลัมน์ ก่อนการแสดงผล
เช่น colume ‘status’ ที่เก็บค่า ”,’Y’,’N’ ซึ่งตัวอักษรเหล่านี้ไม่สื่อความหมายที่ชัดเจนให้กับผู้ใช้งาน
ฉะนั้นจึงจำเป็นต้องมีการเปลี่ยนแปลงข้อมูลในคอลัมน์ ก่อนการแสดงผล
CASE Symtex:
CASE case_value
WHEN when_value THEN statement_list
[WHEN when_value THEN statement_list] …
[ELSE statement_list]
END CASE
ตัวอย่างข้อมูล ตาราง temp
รูปที่ 1 ตัวอย่างข้อมูลตาราง temp
จากตัวอย่างข้อมูลข้างต้น ถ้าต้องการเปลี่ยนแปลงข้อมูลในคอลัมน์ ‘tmp_status’ โดยมีเงื่อนไขดังต่อไปนี้
- สถานะ ‘Y’ เท่ากับ “ยืนยัน”
- สถานะ ‘N’ เท่ากับ “ไม่ยืนยัน”
- สถานะ ‘ ‘ เท่ากับ “รอยืนยัน”
คำสั่ง SQL ที่ใช้สำหรับกรณีนี้คือ
SELECT tmp_id, tmp_name,
CASE tmp_status
WHEN ‘Y’ THEN ‘ยืนยัน’
WHEN ‘N’ THEN ‘ไม่ยืนยัน’
WHEN ‘ ‘ THEN ‘รอยืนยัน’
END AS tmp_status
FROM temp;
ผลลัพย์ที่ได้คือ
จะสังเกตุเห็นได้ว่าการ SELECT ข้อมูล และเปลี่ยนแปลงข้อมูลในคอลัมน์ ก่อนการแสดงผลของ CASE WHEN อยู่ในรูปแบบที่เข้าใจง่าย
และสามารถนำไปประยุกต์ใช้งานร่วมกับฟังก์ชันอื่นๆ ได้อีกมากมาย เช่น การหาผลรวม (SUM) การนับจำนวน (COUNT) และอื่นๆ อีกมากมาย
Author : นายสิทธิชัย สมพันธุ์ (แบงค์)