Sql 排序不同的值而不在SELECT语句中
我正在使用SQL Server 2014,并使用下表,其中包含重复值:Sql 排序不同的值而不在SELECT语句中,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在使用SQL Server 2014,并使用下表,其中包含重复值: COLUMN_NAME COLUMN_POS SAL 3 SAL 3 EMP 1 CITY 2 NAME 4 JOB_TITLE 5 JOB_TITLE 5 EMP 1 CITY 2 NAME 4 我需要输出一个不同的列\u NAME值列表,按列\u POS排序,查询结果中不包括列\u POS 稍
COLUMN_NAME COLUMN_POS
SAL 3
SAL 3
EMP 1
CITY 2
NAME 4
JOB_TITLE 5
JOB_TITLE 5
EMP 1
CITY 2
NAME 4
我需要输出一个不同的列\u NAME
值列表,按列\u POS
排序,查询结果中不包括列\u POS
稍后,我将在查询中使用它来动态地旋转列。期望输出:
COLUMN_NAME
EMP
CITY
SAL
NAME
JOB_TITLE
我试过:
(一)
(二)
(三)
其中所有返回错误,表明列位置不在SELECT
列表中,或者ORDER BY子句在视图中无效,
样本值:
CREATE TABLE #temp (
COLUMN_NAME NVARCHAR(MAX)
,COLUMN_POS int
)
INSERT INTO #TEMP
(COLUMN_NAME,COLUMN_POS)
values
('SAL',3 ),
('EMP', 1),
('CITY', 2),
('NAME', 4),
('JOB_TITLE', 5),
('CITY', 2),
('NAME', 4),
('NAME', 4)
假设每个不同名称的位置相同(示例数据表明),那么有什么问题:
SELECT COLUMN_NAME
FROM #Temp
GROUP BY COLUMN_NAME, COLUMN_POS
ORDER BY COLUMN_POS;
假设每个不同名称的位置相同(示例数据表明),那么有什么问题:
SELECT COLUMN_NAME
FROM #Temp
GROUP BY COLUMN_NAME, COLUMN_POS
ORDER BY COLUMN_POS;
视图是一个无序的集合,就像一个表一样<代码>订单依据用于显示目的,并进行外部查询。您始终可以从CTE中选择它,而不是在外部查询中选择它。对于前两列,如果按一列分组,则逻辑上不再有任何其他列。因此,您需要按
列名进行分组
并回答您的问题?视图是一个无序的集合,就像一个表一样<代码>订单依据用于显示目的,并进行外部查询。您始终可以从CTE中选择它,而不是在外部查询中选择它。对于前两列,如果按一列分组,则逻辑上不再有任何其他列。因此,您需要按列名进行分组
并回答您的问题?
CREATE TABLE #temp (
COLUMN_NAME NVARCHAR(MAX)
,COLUMN_POS int
)
INSERT INTO #TEMP
(COLUMN_NAME,COLUMN_POS)
values
('SAL',3 ),
('EMP', 1),
('CITY', 2),
('NAME', 4),
('JOB_TITLE', 5),
('CITY', 2),
('NAME', 4),
('NAME', 4)
SELECT COLUMN_NAME
FROM #Temp
GROUP BY COLUMN_NAME, COLUMN_POS
ORDER BY COLUMN_POS;