Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как отобрать столбцы только отличающиеся порядком  [new]
Гооооооссттььб
Guest
Доброе время суток коллеги.
Возникла скорее теоретическая задача.
есть таблица
А Б С
1 2 3
2 3 1
3 2 1

Получить любую строку.
Спасибо.
8 ноя 13, 23:05    [15100626]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать столбцы только отличающиеся порядком  [new]
o-o
Guest
Гооооооссттььб,

так надо строки получать или столбцы?
в названии топика просят столбцы, в самом посте уже строки
9 ноя 13, 00:23    [15101030]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать столбцы только отличающиеся порядком  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
declare @t table (id int not null primary key, a int, b int, c int);

insert into @t
values
 (10, 1, 2 ,3),
 (20, 3, 2 ,1),
 (30, 2, 3 ,1),
 (40, 4, 5 ,6),
 (50, 4, 6 ,5),
 (60, 6, 5, 4);

select top (1) with ties
 t.*
from
 @t t cross apply
 (
  select
   (select right(replicate('0', 10) + cast(x.v as varchar(10)), 10) from (values (t.a), (t.b), (t.c)) x(v) order by x.v for xml path(''), type).value('.', 'varchar(100)')
 ) c(criteria)
order by
 row_number() over (partition by c.criteria order by rand(checksum(newid())));
9 ноя 13, 00:54    [15101169]     Ответить | Цитировать Сообщить модератору
 Re: Как отобрать столбцы только отличающиеся порядком  [new]
Гооооооссттььб
Guest
Классно ! Спасибо.
9 ноя 13, 01:07    [15101216]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить