sql >> Database >  >> RDS >> Database

Hoe u rijen filtert zonder NULL in een kolom

Probleem:

U wilt records zoeken zonder NULL in een kolom.

Voorbeeld:

Onze database heeft een tabel met de naam product met gegevens in drie kolommen:id , name , en price .

id naam prijs
1 boter NULL
2 melk 2,35
3 brood 3,25
4 kaas NULL

Laten we de namen en prijzen zoeken van producten die een prijs hebben (zonder NULL). Doe dit met de operator IS NOT NULL.

Oplossing:

SELECT name, 
  price
FROM product
WHERE price IS NOT NULL;

Dit is het resultaat van de zoekopdracht:

naam prijs
melk 2,35
brood 3,25

Dit retourneert alleen records zonder NULL in de kolom, dus alleen de namen en prijzen van melk en brood zijn aanwezig. Boter en kaas hebben geen prijzen (de kolom price is NULL) zodat je ze niet ziet.

Discussie:

Gebruik de operator IS NOT NULL om records zonder NULL in een kolom weer te geven. U hebt alleen de naam van de kolom (of een uitdrukking) en de operator IS NOT NULL nodig (in ons voorbeeld is de price IS NOT NULL ). Zet deze voorwaarde in de WHERE-clausule (in ons voorbeeld WHERE price IS NOT NULL ), die rijen filtert.

Als de voorwaarde waar is, geeft dit aan dat de kolom geen NULL opslaat. De rij wordt geretourneerd als deze een waarde in deze kolom heeft (de kolom is niet NULL). Van bovenaf retourneert de zoekopdracht slechts twee producten, melk en brood, omdat ze waarden hebben in price .


  1. Wat is Ongedaan maken en opnieuw doen in de Oracle-database?

  2. GEBRUIK HINT en DISABLE_OPTIMIZED_NESTED_LOOP

  3. Hoe verschillende records uit een tabel in SQL Server te halen - SQL Server / TSQL-zelfstudie 112

  4. Breekt MySQL de norm door kolommen te selecteren die geen deel uitmaken van de group by-clausule?