Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Garisson Member Откуда: Сообщений: 93 |
Есть таблица типа: if exists (select * from tempdb.dbo.sysobjects where id = object_id('tempdb..#abc')) drop table #abc CREATE TABLE #abc(ID int, name varchar (10)) INSERT #abc (id,name) VALUES (1, 'z') INSERT #abc (id,name) VALUES (2, 'd') INSERT #abc (id,name) VALUES (3, 'a') INSERT #abc (id,name) VALUES (4, 'c') INSERT #abc (id,name) VALUES (5, 'b') INSERT #abc (id,name) VALUES (6, 'y') SELECT * FROM #abc ORDER BY name как вывести вверх списка известные заранее записи скажем с ID=1 и 6 сохраняя сортировку по полю name в таком виде? DELETE FROM #abc INSERT #abc (id,name) VALUES (6, 'y') INSERT #abc (id,name) VALUES (1, 'z') INSERT #abc (id,name) VALUES (3, 'a') INSERT #abc (id,name) VALUES (5, 'b') INSERT #abc (id,name) VALUES (4, 'c') INSERT #abc (id,name) VALUES (2, 'd') SELECT * FROM #abc P.S. желательно что бы не слишком ресурсная получилась конструкция с учетом большого количества записей в таблице. |
2 ноя 12, 10:05 [13412503] Ответить | Цитировать Сообщить модератору |
tpg Member Откуда: Novosibirsk Сообщений: 23902 |
Ну, как-то так, напримерdeclare @abc table(id int, name varchar (10)) insert @abc (id,name) values (1, 'z') insert @abc (id,name) values (2, 'd') insert @abc (id,name) values (3, 'a') insert @abc (id,name) values (4, 'c') insert @abc (id,name) values (5, 'b') insert @abc (id,name) values (6, 'y') select * from @abc order by name select * from @abc order by case when (id = 1 or id = 6) then 0 - id else id end |
2 ноя 12, 10:11 [13412539] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47045 |
SELECT * FROM #abc ORDER BY ISNULL(-SIGN(NULLIF(NULLIF(ID,1),6)),ID) DESC, name; |
2 ноя 12, 10:13 [13412551] Ответить | Цитировать Сообщить модератору |
Garisson Member Откуда: Сообщений: 93 |
спасибо, но сортировка не по name получилась а по ID, но мысль мне ясна, позволил себе немного доработать: SELECT * from @abc order by case when (id = 1 or id = 6) then '_' + name else name end |
||
2 ноя 12, 10:25 [13412607] Ответить | Цитировать Сообщить модератору |
Garisson Member Откуда: Сообщений: 93 |
iap, спасибо то же вариант хороший |
2 ноя 12, 10:26 [13412612] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |