Sql 排序不同的值而不在SELECT语句中

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 稍

我正在使用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 
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;