sql >> Databáze >  >> RDS >> Mysql

SQL:jak mohu seřadit podle pole, pokud není null, jinak použijte jiné pole

Můžete použít COALESCE :

ORDER BY COALESCE(dtModified, dtPosted)

Další možností je použít funkci specifickou pro MySQL IFNULL místo COALESCE .

Testování na 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)

Výsledky:

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. jak získat počáteční a koncové datum všech týdnů mezi dvěma daty na serveru SQL?

  2. Jak uložit databázi sqlite přímo na sdcard

  3. Získejte pouze číslice pomocí regulárního výrazu

  4. Rozšíření použití DBCC CLONEDATABASE