在 WHERE 子句中重用选择表达式的子查询
Posted
技术标签:
【中文标题】在 WHERE 子句中重用选择表达式的子查询【英文标题】:Reuse Subquery from Select Expression in WHERE-Clause 【发布时间】:2011-04-19 18:32:40 【问题描述】:当然不能写
SELECT (some subselect) AS blah FROM t WHERE blah = 'const'
最好的方法是什么?
SELECT (some subselect) FROM t WHERE (some subselect) = 'const'
?
查看?
存储函数?
有吗?
其他?
【问题讨论】:
【参考方案1】:您可以将(some subselect)
移动为FROM
中的表格:
SELECT s.blah
FROM t, (some subselect) s
WHERE t.id = s.id
AND s.blah = 'const'
【讨论】:
但是你必须放弃join on
语法并使用肮脏的where
连接语法?
这是为什么呢?您可以随时使用两者(s
本身就是一个表)。为什么where
很脏?它也是一个连接(交叉连接)并且很有用。以上是关于在 WHERE 子句中重用选择表达式的子查询的主要内容,如果未能解决你的问题,请参考以下文章
lambda 表达式使用 select 和 where 子句连接多个表
错误:当前子查询表达式仅允许作为配置单元中的 where 子句谓词