SQL Server ระดับกลาง
Ginger Grant
Instructor
เมื่อไม่มีข้อมูล ฟิลด์ในฐานข้อมูลจะแสดงค่า NULL
เนื่องจาก NULL ไม่ใช่ตัวเลข จึงไม่สามารถใช้ =, <, หรือ > เพื่อค้นหาหรือเปรียบเทียบค่าที่หายไปได้
หากต้องการตรวจสอบว่าคอลัมน์มีค่า NULL หรือไม่ ให้ใช้ IS NULL และ IS NOT NULL
SELECT Country, InternetUse, Year
FROM EconomicIndicators
WHERE InternetUse IS NOT NULL
+-------------------+-------------------+------------+
|Country |InternetUse |Year |
|-------------------+-------------------+------------+
|Afghanistan |4.58066992 |2011 |
|Albania |49 |2011 |
|Algeria |14 |2011 |
....
+-------------------+-------------------+------------+
SELECT Country, InternetUse, Year
FROM EconomicIndicators
WHERE InternetUse IS NULL
+-------------------+-------------------+------------+
|Country |InternetUse |Year |
|-------------------+-------------------+------------+
|Angola |NULL |2013 |
|Argentina |NULL |2013 |
|Armenia |NULL |2013 |
....
+-------------------+-------------------+------------+
'' เพื่อค้นหาค่าว่างได้SELECT Country, GDP, Year
FROM EconomicIndicators
WHERE LEN(GDP) > 0
+-------------------+-------------------+------------+
|Country |GDP |Year |
|-------------------+-------------------+------------+
|Afghanistan |54852215624 |2011 |
|Albania |29334492905 |2011 |
|Algeria |453558093404 |2011 |
....
+-------------------+-------------------+------------+
SELECT GDP, Country,
ISNULL(Country, 'Unknown') AS NewCountry
FROM EconomicIndicators
+-------------------+----------------+----------------+
|GDP |Country |NewCountry |
|-------------------+----------------+----------------+
|5867920022 |NULL |Unknown |
|597873038497 |South Africa |South Africa |
|1474091271101 |NULL |Unknown |
...
+-------------------+----------------+----------------+
/*Substituting values from one column for another with ISNULL*/
SELECT TradeGDPPercent, ImportGoodPercent,
ISNULL(TradeGDPPercent, ImportGoodPercent) AS NewPercent
FROM EconomicIndicators
+-------------------+------------------+----------------+
|TradeGDPPercent |ImportGoodPercent |NewPercent |
|-------------------+------------------+----------------+
|NULL |56.7 |56.7 |
|52.18720739 |51.75273421 |52.18720739 |
|NULL |NULL |NULL |
...
+-------------------+------------------+----------------+
COALESCE คืนค่าแรกที่ไม่ใช่ NULL
COALESCE( value_1, value_2, value_3, ... value_n )
value_1 เป็น NULL และ value_2 ไม่ใช่ NULL จะคืนค่า value_2value_1 และ value_2 เป็น NULL และ value_3 ไม่ใช่ NULL จะคืนค่า value_3SELECT TradeGDPPercent, ImportGoodPercent,
COALESCE(TradeGDPPercent, ImportGoodPercent, 'N/A') AS NewPercent
FROM EconomicIndicators
+-------------------+--------------------+---------------+
|TradeGDPPercent |ImportGoodPercent |NewPercent |
|-------------------+--------------------+---------------+
|NULL |56.7 |56.7 |
|NULL |NULL |N/A |
|52.18720739 |51.75273421 |52.18720739 |
+-------------------+--------------------+---------------+
SQL Server ระดับกลาง