这是我试图去工作的查询,但我得到一个语法错误。SQL Select value as(Subquery)
SELECT Column1 as (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC)
from Table1
我是自学的,并没有发现任何明确地说,这不能做,但如果是这样的话,那么感谢关闭。
这是我试图去工作的查询,但我得到一个语法错误。SQL Select value as(Subquery)
SELECT Column1 as (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC)
from Table1
我是自学的,并没有发现任何明确地说,这不能做,但如果是这样的话,那么感谢关闭。
尝试
SELECT (SELECT Value2 from Table2 Where ConditionA, ConditionB, ConditionC) Column1 from Table1
这没有多大意义,你实际上没有选择'Table1'中的任何东西 – Jamiec
这将颠倒内容及其别名... – CactusCake
问题不在于它是否有意义......这是用户问题的答案。他必须决定是否有意义。问题 - >回答 – cboden
不能使用从一个别名的子查询返回的值,也没有办法,使这项工作。
您唯一的选择是动态构建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
但是,我要强调,这是一个不好的解决。
不是愚蠢的,但为什么这是坏的?只是想进一步教育自己。 – TechProjCoord
这不是一个愚蠢的问题,但它是一个很长的回答,特别是在评论中。阅读:http://stackoverflow.com/questions/317725/is-a-dynamic-sql-stored-procedure-a-bad-thing-for-lots-of-records开始 – Jamiec
如果你是一个规范回答,试试这个:http://www.sommarskog.se/dynamic_sql。HTML(警告:长) – Jamiec
问题是:你想要做什么?请添加您的表格结构,示例数据和预期输出。 –
只是为了澄清 - 你是否试图使用子查询(来自'Table2.Value2')为'Table1'中的'Column1'创建一个别名? – Jamiec
如果您想要变量列名称,您需要动态sql – lad2025