如何在子查询

时间:2018-02-08 09:53:54

标签: sql-server subquery

我请求你的帮助,因为我无法确定这个问题的解决方案。我正在使用SQL Server 2014。

我有这样的查询:

SELECT 
    event_id, 
    CONCAT ('week', CHARINDEX('Y', weeks), '_date') AS num 
FROM 
    CT_EVENT

返回表单的周数:week1_date

此值是另一个表中列的名称。我想做的是获取其中的值的子请求。

SELECT week1_date 
FROM CT_CONFIG

我找到了一种方法,在列名中'caster'一个字符串而不实际查找。

提前感谢您,并继续提供任何补充。

的Jérémy

1 个答案:

答案 0 :(得分:2)

你不能在这里使用子查询,你需要使用Dynamic sql,就像这样...

Declare   @ColumnName SYSNAME
        , @Sql NVARCHAR(MAX);

SELECT @ColumnName =  CONCAT ('week', CHARINDEX ('Y', weeks), '_date')  
FROM CT_EVENT

SET @Sql = N' SELECT ' + QUOTENAME(@ColumnName) + N' FROM CT_CONFIG;'

Exec sp_executesql @Sql;