如何将查询结果用作单独查询的列?

时间:2014-05-22 11:22:35

标签: sql sql-server sql-server-2008

我的查询如下。

SELECT 'U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm'

这带来了例如U_ThuConfirm

的结果

然后我需要将该结果用作我正在尝试查询的表中该字段的不同查询中的列。如下;

SELECT ('U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm') FROM MyTable

我已尝试过变量,但它只显示结果,而不是实际检查该列。

2 个答案:

答案 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
相关问题