sql >> Database >  >> RDS >> Mysql

SQL:hoe bestel ik op een veld als het niet null is, anders een ander veld gebruiken?

U kunt COALESCE gebruiken :

ORDER BY COALESCE(dtModified, dtPosted)

Een andere optie is om de MySQL-specifieke functie te gebruiken IFNULL in plaats van COALESCE .

Testen op MySQL:

CREATE TABLE table1 (dtModified DATETIME NULL, dtPosted DATETIME NOT NULL);
INSERT INTO table1 (dtModified, dtPosted) VALUES
('2010-07-31 10:00:00', '2010-07-30 10:00:00'),
(NULL                 , '2010-07-31 09:00:00'),
('2010-07-31 08:00:00', '2010-07-30 10:00:00');

SELECT dtModified, dtPosted
FROM table1
ORDER BY COALESCE(dtModified, dtPosted)

Resultaten:

dtModified           dtPosted
2010-07-31 08:00:00  2010-07-30 10:00:00
NULL                 2010-07-31 09:00:00
2010-07-31 10:00:00  2010-07-30 10:00:00


  1. Is het mogelijk om globale variabelen te definiëren in postgresql

  2. Max tabellen &ontwerppatroon

  3. Gegevens vastleggen in een mysql-container

  4. 1052:Kolom 'id' in veldlijst is dubbelzinnig