【问题标题】:SELECT only values defined in INFORMATION SCHEMA仅选择 INFORMATION SCHEMA 中定义的值
【发布时间】:2019-07-19 20:18:24
【问题描述】:

您能帮我解决以下问题吗?

源表:

从 INFORMATION_SCHEMA.COLUMNS 定义的列:

在输出中,我想获取我的源表,但只显示列名与信息架构中定义的列名相同的值。含义:

有可能吗?非常感谢提前

【问题讨论】:

  • 当您开始想在单个查询中混合元数据查询和数据查询时,通常表明数据模型有误。例如。这里看起来源表应该类似于ID,Year,Month,WhateverValue,行应该类似于1,2019,12,152,2020,1,6。然后它应该回到直接的数据查询。

标签: sql tsql information-schema


【解决方案1】:

您需要使用动态 SQL 来执行此操作:

declare @sql varchar(1000) 'select ';
select @sql = @sql + '[' + column_name + '] ,' from INFORMATION_SCHEMA.COLUMNS;
-- remove last character in a string which is comma
select @sql = left(@sql, len(@sql) - 1);
-- you need to change talbe name here
select @sql = @sql + ' from MyTable';
-- execute statement
exec(@sql)

【讨论】:

  • 谢谢米哈尔。如果可以的话,还有一个问题。我收到此行的错误:sql = sql + ' from MyTable';。这里究竟有什么期望? FROM 源表名?
  • @JurajC 更新了答案。如果它对您有帮助,您应该接受它(左侧的绿色复选标记)并可选择投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 1970-01-01
  • 2015-08-10
  • 1970-01-01
  • 2015-04-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多