powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Двойная сортировка
8 сообщений из 8, страница 1 из 1
Двойная сортировка
    #38337347
Garisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго вечера всем.
Ни как не догадаюсь как решить проблему, есть таблица:

CREATE TABLE #PARTNER(id INT NOT NULL IDENTITY PRIMARY KEY, name VARCHAR(10), AGE INT, height INT)
INSERT INTO #PARTNER(name, AGE, height) VALUES ('A', 3, 1)
INSERT INTO #PARTNER(name, AGE, height) VALUES ('C', 21, 11)
INSERT INTO #PARTNER(name, AGE, height) VALUES ('Z', 12, 3)
INSERT INTO #PARTNER(name, AGE, height) VALUES ('B', 4, 5)

SELECT * FROM #PARTNER ORDER BY AGE

DROP TABLE #PARTNER


Как получить на выходе такой результат:(т.е сначала name выводится с сортировкой по AGE, а рядом тот же name с сортировкой по height)?
id name AGE name height
1 A 3 A 1
4 B 4 Z 3
3 Z 12 B 5
2 C 21 C 11
...
Рейтинг: 0 / 0
Двойная сортировка
    #38337360
Фотография Shakill
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROW_NUMBER() + JOIN
...
Рейтинг: 0 / 0
Двойная сортировка
    #38337366
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garisson, странная задача...

Ну как тот так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
;with a as (
	select * ,ROW_NUMBER() over (order by age) as rn
	  from #PARTNER)
	 ,b as (
	select * ,ROW_NUMBER() over (order by height) as rn
	from #PARTNER)
select a.id,a.name,a.AGE,b.name,b.height
from a
inner join b
	on a.rn = b.rn
order by a.rn
...
Рейтинг: 0 / 0
Двойная сортировка
    #38337373
Фотография Maxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 
 t.id , t.name, t.AGE , t2.name, t2.height
from (
SELECT  id, name, age , n =ROW_NUMBER()over( order by age)
FROM #PARTNER 

) t
inner join (
 SELECT  id, name, height, n =ROW_NUMBER()over( order by height)
 FROM #PARTNER 

) t2 on t.n =t2.n
...
Рейтинг: 0 / 0
Двойная сортировка
    #38337512
Фотография Mind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GarissonКак получить на выходе такой результат:(т.е сначала name выводится с сортировкой по AGE, а рядом тот же name с сортировкой по height)?
Вывести 2 результата, а потом объединить их в интерфейсе вашей программы.
...
Рейтинг: 0 / 0
Двойная сортировка
    #38338601
Garisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Эх, моя вина не указал, что MSSQL2000, а так бы с ROW_NUMBER() было бы прекрасно. По поводу вывода в программе, конечно можно там вывести как угодно, но хотелось бы все таки получить один recordset и перебирая его отображать результат. Можно ли сымитировать ROW_NUMBER() для MSSQL2000?
...
Рейтинг: 0 / 0
Двойная сортировка
    #38338611
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garisson,

и к какому же варианту относится id

id name AGE-1 name height-21 A 3 A 14 B 4 Z 33 Z 12 B 52 C 21 C 11
...
Рейтинг: 0 / 0
Двойная сортировка
    #38338621
Garisson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАGarisson,

и к какому же варианту относится id

id name AGE-1 name height-21 A 3 A 14 B 4 Z 33 Z 12 B 52 C 21 C 11

Будем считать к тому, что ближе.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Двойная сортировка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]