这是我试图开始工作的查询,但我收到了语法错误。
SELECT Column1 as (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC)
from Table1
我是自学成才,并且没有发现任何明确说明无法完成的事情,但如果是这样的话,那么感谢关闭。
答案 0 :(得分:0)
您不能将子查询返回的值用于别名,也无法使其工作。
你唯一的选择是动态构建sql,并使用sp_executesql
,但这通常表明其他方面出错了!
首先获得您想要的值,几点
TOP 1
或适当的过滤条件多个条件由AND
或OR
分隔,而不是逗号
declare @alias NVARCHAR(100) -- whatever is appropriate
SELECT TOP 1 @alias = value2 FROM Table2
WHERE someField = 'some value'
然后动态构建sql并执行它。
DECLARE @sql NVARCHAR(100) = 'SELECT Column1 AS ' + @alias + ' FROM Table1'
EXEC sp_executesql @sql
您可以在此处查看此操作:http://sqlfiddle.com/#!3/71f8d6/3
但是,我强调,这是一个糟糕的解决方案。
答案 1 :(得分:-2)
尝试
SELECT (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC) Column1 from Table1