2010-08-18 14 views

cevap

11
SELECT 
    * 
FROM 
    People 
ORDER BY 
    CASE WHEN LastName IS NULL THEN 1 ELSE 0 END, 
    LastName 

Ayrıca sadece bir kişinin aslında "zzzzzz" tutarındaki veritabanından çekilen Soyad olsaydı

SELECT 
    * 
FROM 
    People 
ORDER BY 
    COALESCE(LastName, 'ZZZZZ') 

Teknik olarak, ikinci versiyon başarısız olur kullanabilirsiniz.

NOT: Sana bir örnek veriyoruz çünkü bu sadece eminim, ama ben

+0

CASE ifadesi gereksizdir. Bunun yerine 'LastName IS NULL' kullanabilirsiniz. – Hammerite

+0

ANSI uyumlu olduğuna inanmıyorum. Soru, MySQL derken ve kısaltılmış sözdizimi MySQL'de çalışabilirken, birkaç ek karakter yazmayı ve ANSI uyumlu kalmayı tercih ediyorum. –

0
SELECT * 
FROM `People` 
ORDER BY case when `LastName` is null then 1 else 0 end, 
    `LastName` 
1
SELECT *, LastName IS NULL AS nullity 
    FROM `People` 
ORDER BY nullity ASC, `LastName` ASC 
0

bunu yapmalısınız :) ... Eğer fiili üretim kodunda SELECT * kullanmadığınız umut Sizin için

select *, if(isnull(name), 1, 0) as is_name_null 
from names 
order by is_name_null asc, name asc 
İlgili konular