我请求你的帮助,因为我无法确定这个问题的解决方案。我正在使用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
答案 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;