基本上,我使用此查询来查找此特定表的列。
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PARTICULAR_TABLE'
我还在下面使用此查询来获取该表的特定列。
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PARTICULAR_TABLE'
AND COLUMN_NAME in ('A','B','C','D','E')
结果:
COLUMN_NAME
A
B
C
D
E
问题在于结果的排列。我的目标是将其安排到所需的安排。就是这样。
所需结果:
COLUMN_NAME
B
A
C
D
E
我最初的问题是检索此特定表的列。该查询的结果应显示单个列。而且我能够使用上面使用的查询来实现这一点。现在的问题是该结果的期望排列。我使用的是Microsoft SQL Server Management Studio 2016。
答案 0 :(得分:1)
[OPTON 1]:使用ORDER BY
并在那里指定所需的顺序
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'PARTICULAR_TABLE'
AND COLUMN_NAME in ('A','B','C','D','E')
ORDER BY CASE COLUMN_NAME WHEN 'B' THEN 1 WHEN 'A' THEN 2 WHEN 'C' THEN 3 END
[选项2]:使用临时表或表变量,并按所需顺序插入列名
declare @col table
(
col_order int identity(1,1),
colname varchar(50)
)
insert into @col (colname) values
('B') , ('A') , ('C') , ('D') , ('E')
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS S
INNER JOIN @col C ON S.COLUMN_NAME = C.colname
WHERE TABLE_NAME = 'PARTICULAR_TABLE'
ORDER BY C.col_order