2016-04-08 8 views
2

Merhaba SQL sunucusunda nasıl yapılabilir acaba.Tüm satırların başına bir satır kesin olarak tüm satırları geride bırakarak ASCENDING

Kodum doğru değil. İşte

SELECT * FROM 
TABLE_NAME 
WHERE NAME = 'United Kingdom' 
ORDER BY Name 

Numune enter image description here

Ve burada sonuç beklenmektedir. enter image description here

Yanıtlarınız için teşekkür ederiz.

+0

Örnek tablo verileri ekleyin ve beklenen sonuç. – jarlh

+1

Hangi tam satır? Muhtemelen İsim = 'SADECE SONRA ELSE 1 SON, İsim ASC' gibi bir şey istemek isteyebilirsiniz, ancak sorudaki asgari bilgiye dayanarak söylemek oldukça zordur. – GarethD

+0

Seni tam olarak alamadım ama 'UNION' deneyin. query1 = tam satırınız, query2 = 'tam satır' hariç diğer tüm satırlarınız. query1 UNION query2 sonucun olan – Immu

cevap

6

order by bir case kullanın:

SELECT * 
FROM TABLE_NAME 
ORDER BY (CASE WHEN NAME = 'United Kingdom' THEN 1 ELSE 2 END), Name; 

ORDER BY birden fazla anahtarı kabul eder. İlk önce istenilen değerleri koyar.

+0

olmadan tahmin edilemez. Evet bu doğru ve bunu çözdüm ama biraz daha basit bir cevap var. –

+2

Ben tam olarak bu karmaşık olarak adlandırmak olmaz, ne kadar daha basit istersiniz? Sütununuz null olamazsa, '' SİPARİŞ NULLIF (Name, 'UnitedKingdom') 'kullanabilirsiniz, ancak bu Gordon'un yaklaşımı için sözdizimsel şekerden başka bir şey değildir. – GarethD

İlgili konular