【发布时间】:2019-03-25 16:45:46
【问题描述】:
在研究一个不相关的主题时,我注意到在 IBM Knowledge Center 网站上的 Netezza 示例中使用了 LIMIT ALL。我不清楚在此处指定 LIMIT ALL 的好处,我正在寻求 IBM 的解释(引用如下)的澄清。我什么时候需要指定 LIMIT ALL?
SELECT CASE WHEN rand = .1 THEN 'A' WHEN rand = .2 THEN 'B' ELSE 'C' END
FROM (SELECT random() rand FROM tblA LIMIT ALL) subset
来自 IBM 知识中心:
"子查询中的 LIMIT ALL 阻止它被拉到父查询中,并且对于 tblA 的每一行,random() 函数只调用一次,因此在每个 WHEN 中测试相同的 random() 结果子句。”
顺便说一句...我的问题与 IBM 示例中“random()”的使用无关。
谢谢!
【问题讨论】: