SAP HANA - นิพจน์ SQL
นิพจน์ใช้เพื่อประเมินอนุประโยคเพื่อส่งคืนค่า มีนิพจน์ SQL ที่แตกต่างกันที่สามารถใช้ใน HANA -
- นิพจน์กรณี
- นิพจน์ฟังก์ชัน
- นิพจน์รวม
- แบบสอบถามย่อยในนิพจน์
นิพจน์กรณี
สิ่งนี้ใช้เพื่อส่งผ่านหลายเงื่อนไขในนิพจน์ SQL อนุญาตให้ใช้ตรรกะ IF-ELSE-THEN โดยไม่ต้องใช้โพรซีเดอร์ในคำสั่ง SQL
ตัวอย่าง
SELECT COUNT( CASE WHEN sal < 2000 THEN 1 ELSE NULL END ) count1,
COUNT( CASE WHEN sal BETWEEN 2001 AND 4000 THEN 1 ELSE NULL END ) count2,
COUNT( CASE WHEN sal > 4000 THEN 1 ELSE NULL END ) count3 FROM emp;
คำสั่งนี้จะส่งคืน count1, count2, count3 ด้วยค่าจำนวนเต็มตามเงื่อนไขที่ผ่าน
นิพจน์ฟังก์ชัน
นิพจน์ฟังก์ชันเกี่ยวข้องกับฟังก์ชัน SQL inbuilt ที่จะใช้ในนิพจน์
นิพจน์รวม
ฟังก์ชันรวมใช้ในการคำนวณที่ซับซ้อนเช่น Sum, Percentage, Min, Max, Count, Mode, Median เป็นต้น Aggregate Expression ใช้ฟังก์ชัน Aggregate เพื่อคำนวณค่าเดียวจากหลายค่า
Aggregate Functions- ผลรวมนับต่ำสุดสูงสุด สิ่งเหล่านี้ใช้กับค่าการวัด (ข้อเท็จจริง) และเกี่ยวข้องกับมิติข้อมูลเสมอ
ฟังก์ชันการรวมทั่วไป ได้แก่ -
- ค่าเฉลี่ย ()
- นับ ()
- ขีดสุด ()
- ค่ามัธยฐาน ()
- ขั้นต่ำ ()
- โหมด ()
- ผลรวม ()
แบบสอบถามย่อยในนิพจน์
แบบสอบถามย่อยเป็นนิพจน์คือคำสั่ง Select เมื่อใช้ในนิพจน์จะส่งกลับค่าศูนย์หรือค่าเดียว
แบบสอบถามย่อยใช้เพื่อส่งคืนข้อมูลที่จะใช้ในแบบสอบถามหลักเป็นเงื่อนไขในการ จำกัด ข้อมูลที่จะเรียกเพิ่มเติม
สามารถใช้แบบสอบถามย่อยกับคำสั่ง SELECT, INSERT, UPDATE และ DELETE พร้อมกับตัวดำเนินการเช่น =, <,>,> =, <=, IN, BETWEEN เป็นต้น
มีกฎสองสามข้อที่ต้องปฏิบัติตามแบบสอบถามย่อย -
แบบสอบถามย่อยต้องอยู่ในวงเล็บ
แบบสอบถามย่อยสามารถมีได้เพียงคอลัมน์เดียวในส่วนคำสั่ง SELECT เว้นแต่ว่าจะมีหลายคอลัมน์ในแบบสอบถามหลักเพื่อให้แบบสอบถามย่อยเปรียบเทียบคอลัมน์ที่เลือก
ไม่สามารถใช้ ORDER BY ในแบบสอบถามย่อยแม้ว่าแบบสอบถามหลักจะสามารถใช้ ORDER BY ได้ GROUP BY สามารถใช้เพื่อทำฟังก์ชันเดียวกับ ORDER BY ในแบบสอบถามย่อย
แบบสอบถามย่อยที่ส่งคืนมากกว่าหนึ่งแถวสามารถใช้ได้กับตัวดำเนินการหลายค่าเท่านั้นเช่นตัวดำเนินการ IN
รายการ SELECT ไม่สามารถรวมการอ้างอิงถึงค่าใด ๆ ที่ประเมินเป็น BLOB, ARRAY, CLOB หรือ NCLOB
ไม่สามารถใส่เคียวรีย่อยในฟังก์ชัน set ได้ทันที
ไม่สามารถใช้ตัวดำเนินการ BETWEEN กับแบบสอบถามย่อยได้ อย่างไรก็ตามสามารถใช้ตัวดำเนินการ BETWEEN ภายในแบบสอบถามย่อยได้
แบบสอบถามย่อยที่มีคำสั่ง SELECT
แบบสอบถามย่อยมักใช้กับคำสั่ง SELECT ไวยากรณ์พื้นฐานมีดังนี้ -
ตัวอย่าง
SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS
WHERE SALARY > 4500) ;
+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+