我的查询如下。
SELECT 'U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm'
这带来了例如U_ThuConfirm
的结果然后我需要将该结果用作我正在尝试查询的表中该字段的不同查询中的列。如下;
SELECT ('U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm') FROM MyTable
我已尝试过变量,但它只显示结果,而不是实际检查该列。
答案 0 :(得分:1)
您需要创建一个包含查询的字符串:
DECLARE @SQL VARCHAR(500)
SET @SQL = 'SELECT U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm FROM MyTable'
然后像这样执行
EXEC (@SQL)
答案 1 :(得分:0)
对于类似这样的事情 - 选项定义明确,你可以使用案例陈述
SELECT CASE
WHEN DATEPART(dw, GetDate()) = 1 THEN U_SunConfirm
WHEN DATEPART(dw, GetDate()) = 2 THEN U_MonConfirm
WHEN DATEPART(dw, GetDate()) = 3 THEN U_TueConfirm
WHEN DATEPART(dw, GetDate()) = 4 THEN U_WedConfirm
... etc
END
AS Confirms