Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何将查询结果用作单独查询的列?_Sql_Sql Server_Sql Server 2008 - Fatal编程技术网

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,我应该得到其中的任何值