【问题标题】:How to insert values from a column from other one, getting column name through a query如何从另一列的列中插入值,通过查询获取列名
【发布时间】:2018-05-08 20:09:20
【问题描述】:

我想知道如何从具有动态名称的列中插入值。我得到这样的列名:

select  
    (select a.COLUMN_NAME 
     from INFORMATION_SCHEMA.COLUMNS a 
     where a.COLUMN_NAME = 'COMMENTS') TEST 
from jan_dic d

我有一个master_table,其中一列具有所有唯一的列名,另一列具有第一列的所有已批准名称,如下所示。

column1  | column2
---------+------------
capital  | cap_amount
capital  | amount_cap
capital  | cap_amt   

我的问题是,如果我的列名获得批准,我如何在另一个表中插入列名 = 'capital' 的值。

【问题讨论】:

  • 您好,欢迎来到 SO。我知道英语不是你的第一语言,但这没有多大意义。批准列是什么意思?真正想要在这里做什么?您需要发布表定义、一些示例数据和所需的输出。这是一个很好的起点。 spaghettidba.com/2015/04/24/…
  • 寻找dynamic query
  • 如果没有人能理解你,没有人能帮助你。

标签: sql-server


【解决方案1】:
DECLARE @colname sysname = (
select  
    (select a.COLUMN_NAME 
     from INFORMATION_SCHEMA.COLUMNS a 
     where a.COLUMN_NAME = 'COMMENTS') TEST 
from jan_dic d
)

DECLARE @stmt NVARCHAR(MAX) = N'
   INSERT INTO othertable (' + @colname + N') VALUES ...
'

EXEC sp_executesql @stmt = @stmt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多