Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL:jak uporządkować według pola, jeśli nie jest null, w przeciwnym razie użyj innego pola?

Możesz użyć COALESCE :

ORDER BY COALESCE(dtModified, dtPosted)

Inną opcją jest użycie specyficznej funkcji MySQL IFNULL zamiast COALESCE .

Testowanie 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)

Wyniki:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak stworzyć bazę danych w MySQL

  2. Wybierz zapytanie do pobrania wierszy w MySQL

  3. Jak wybrać wiele wierszy z mysql za pomocą jednego zapytania i użyć ich w php

  4. Dostęp do ostatnio utworzonego wiersza w PHP/MySQL

  5. jak dodać datę (DateTime.now) do bazy mySql w C#