sql - 重新排列使用 INFORMATION_SCHEMA.COLUMNS 的查询的结果
问题描述
基本上,我使用这个查询来查找这个特定表的列。
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。
解决方案
[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
推荐阅读
- bash - 使用 Linux 终端将位于不同目录中的多个文件解压缩到单个目录
- random - 关于生成会员编号的想法
- sql - 案例、变量和一堆垃圾
- sql-server - 查看结果的 SQL Server 自动 ID
- database - 扩展数据集对提高机器学习算法的性能是否有效?
- kotlin - 覆盖主构造函数的打开值
- c - 当孩子收到 sigstop 信号时读取函数的行为
- minecraft - 如何在 minecraft forge 中修复“方块状态变体 '#normal' 异常的加载模型”?
- javascript - 我正在尝试通过 bs4 collapse 显示特定的用户详细信息
- angular - 更改 matInput 的颜色