Sql 如何将查询结果用作单独查询的列?
我有一个问题如下Sql 如何将查询结果用作单独查询的列?,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我有一个问题如下 SELECT 'U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm' 这带来了一个结果,例如,U_ 然后,我需要在另一个查询中使用该结果作为列,并在我试图查询的表中使用该字段。如下所示 SELECT ('U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm') FROM MyTable 我尝试了变量,但它只是显示结果,而不是实际检查该列。您需要创建一个包含查询的字符串: D
SELECT 'U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm'
这带来了一个结果,例如,U_
然后,我需要在另一个查询中使用该结果作为列,并在我试图查询的表中使用该字段。如下所示
SELECT ('U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm') FROM MyTable
我尝试了变量,但它只是显示结果,而不是实际检查该列。您需要创建一个包含查询的字符串:
DECLARE @SQL VARCHAR(500)
SET @SQL = 'SELECT U_' + (LEFT(DATENAME(dw, GETDATE()), 3)) + 'Confirm FROM MyTable'
然后像这样执行它
EXEC (@SQL)
对于类似的情况,如果选择定义良好,则可以使用case语句
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
这是SQL Server还是MySQL?您将其标记为两者。语法显然是SQL Server,因此我删除了mysql标记。您的查询应该为
MyTable
中具有您要查找的值的每一行返回一列(“U\U”)。如果这不是你想要的,请编辑你的问题并显示你想要的结果。嗨,很抱歉mysql标签。至于所需的结果,我想使用,在本例中,U_ThuConfirm作为一个列,因此如果我从MyTable中写入SELECT U_ThuConfirm,我应该得到其中的任何值