sql >> Database >  >> RDS >> Mysql

MySQL SELECT alleen geen null-waarden

Gebruik IS NOT NULL . (De vergelijkingsoperatoren = en <> beide geven UNKNOWN met NULL aan weerszijden van de uitdrukking.)

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

Voor de volledigheid vermeld ik dat je in MySQL ook de null veilige gelijkheidsoperator maar dit is geen standaard SQL.

SELECT *
FROM table 
WHERE NOT (YourColumn <=> NULL);

Bewerkt om opmerkingen weer te geven. Het klinkt alsof uw tabel misschien niet in de eerste normale vorm is, in welk geval het wijzigen van de structuur uw taak gemakkelijker kan maken. Een paar andere manieren om het te doen...

SELECT val1 AS val
FROM  your_table
WHERE val1 IS NOT NULL
UNION ALL
SELECT val2 
FROM  your_table
WHERE val2 IS NOT NULL
/*And so on for all your columns*/

Het nadeel van het bovenstaande is dat het de tabel meerdere keren per kolom scant. Dat kan misschien worden vermeden door het onderstaande, maar ik heb dit niet getest in MySQL.

SELECT CASE idx
         WHEN 1 THEN val1
         WHEN 2 THEN val2
       END AS val
FROM   your_table
        /*CROSS JOIN*/
       JOIN (SELECT 1 AS idx
                   UNION ALL
                   SELECT 2) t
HAVING val IS NOT NULL  /*Can reference alias in Having in MySQL*/


  1. Het databasewachtwoord wijzigen

  2. Hoe kan ik hoofdlettergevoelig zoeken in de WHERE-clausule (ik gebruik SQL Server)?

  3. Wat is Multi Dimension OLAP CUBE en geef voorbeeld kubus met meer dan 3 dimensies

  4. Hoe de status van de PostgreSQL-server Mac OS X te controleren