Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > UNION SELECT, сортировать только один SELECT


Автор: Edik88 20.3.2008, 12:01
Подскажите пожалуйста как можно сортировать только второй SELECT?
Если я делаю так...
Код

SELECT '0' As s_PLZ, 'Ort' As s_Ort 
UNION SELECT Ort.s_PLZ, s_Ort = CASE WHEN Ort.s_Ort IN 
(SELECT DoppelteEintraege.s_Ort FROM DoppelteEintraege) 
THEN Ort.s_Ort + ' ' + '(' + Ort.s_PLZ + ')' ELSE Ort.s_Ort END 
FROM Ort ORDER BY s_Ort

То мне выдаёт это

76857    Albersweiler
13467    Berlin
28359    Bremen
0        Ort
70771    Stuttgart

А мне надо, чтобы было вот так...
0        Ort
76857    Albersweiler
13467    Berlin
28359    Bremen
70771    Stuttgart

В MySQL это выглядело бы вот так...

Код

(SELECT a FROM tbl_name WHERE a=10 AND B=1 ORDER BY a LIMIT 10)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2 ORDER BY a LIMIT 10);


И работает это только с LIMIT, но в MSSQL LIMIT нету.
Подскажите пожалуйста как мне это сделать.
Заранее огромное спасибо.

Автор: Itsys 20.3.2008, 17:46
Код

SELECT * FROM (SELECT TOP 3 * FROM Goods WHERE GoodId > 10000 ORDER BY GoodId) AS A
UNION ALL
SELECT * FROM (SELECT TOP 3 * FROM Goods WHERE GoodId < 10000 ORDER BY GoodId) AS B

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)