Мне нужно выбрать уникальные столбцы с уникальными записями. В настоящее время, после поворота, когда я использую простой запрос SELECT * FROM table
я получил результаты, как, что:SQL. Как выбрать уникальные записи из нескольких столбцов
| Test1 | Test2 | Test3 | Test1 | Test2 | Test3 | Test1 | Test2 | Test3 | -- column names
| 1 | 1 | 1 | 2 | 2 | 2 | 3 | 3 | 3 | -- records
Если я использую запрос: SELECT DISTINCT * FROM table
я получил следующие результаты:
| Test1 | Test2 | Test3 | -- different column names
| 1 | 1 | 1 | -- unique records
It должно быть таким:
| Test1 | Test2 | Test3 | -- different column names
| 1 | 2 | 3 | -- different records
У вас есть идеи?
P.s. Записи динамичны
UPDATE:
Я использую в режиме реального времени, так спутать выбор перед поворотом, чтобы дать разные имена для столбцов, может быть, у вас есть предложение, как сделать различные названия в другой форме?
SELECT DISTINCT TOP 5 @colsConversion += 'CAST([' + Name+ '] AS ' + 'NVARCHAR(MAX)' + ') AS ' + QUOTENAME('Test'+'1')+ ',' +
'CAST([' + Name+ '] AS ' + 'NVARCHAR(MAX)' + ') AS ' + QUOTENAME('Test'+'2')+ ',' +
'CAST([' + Name+ '] AS ' + 'NVARCHAR(MAX)' + ') AS ' + QUOTENAME('Test'+'3')+ ',' +
'CAST([' + Name+ '] AS ' + 'NVARCHAR(MAX)' + ') AS ' + QUOTENAME('Test'+'4')+ ',' +
'CAST([' + Name+ '] AS ' + 'NVARCHAR(MAX)' + ') AS ' + QUOTENAME('Test'+'5')+ ', '
FROM (SELECT DISTINCT TOP 5....
мне нужно использовать только один раз 'CAST([' + Name+ '] AS ' + 'NVARCHAR(MAX)' + ') AS ' + QUOTENAME('Test'+'1')+ ','
, но проблема в том, что я не знаю, как сделать различные имена для каждого столбца, в этом случае все столбцы будут имена Test1
mysql или sqlserver? Я бы посоветовал вам не открывать, а затем снова поворачиваться ... но вы можете выбрать уникальные записи перед своим первым стержнем? – fthiella
Я не думаю, что это достижимо. –
Как выглядит таблица (определение и примеры данных). Уникальные столбцы? Какие dbms вы используете - MySQL или MS SQL Server - или оба? – jarlh