SQL Server średnio zaawansowany
Ginger Grant
Instructor
Gdy brak danych, puste pole w bazie danych zawiera wartość NULL
Ponieważ NULL nie jest liczbą, nie można używać =, < ani > do wyszukiwania lub porównywania brakujących wartości
Aby sprawdzić, czy kolumna zawiera wartość NULL, należy użyć IS NULL lub 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 |
....
+-------------------+-------------------+------------+
'' pozwala wyszukiwać puste wartościSELECT 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 zwraca pierwszą wartość różną od NULL
COALESCE( value_1, value_2, value_3, ... value_n )
value_1 jest NULL, a value_2 nie jest NULL, zwraca value_2value_1 i value_2 są NULL, a value_3 nie jest NULL, zwraca 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 średnio zaawansowany