java - 使 SQL 查询返回重复行而不使用 UNION ALL 关闭
问题描述
我有一个用例暗示即使多次指定相同的 id 也会返回所有记录
select d.id from data d where d.id in (1420552, 1420553)
union all
select d.id from data d where d.id in (1420552, 1420553)
由于“IN”谓词只是被翻译为所有指定值之间的“OR”,它不会给我想要的结果。
select d.id from data d where d.id in (1420552, 1420553, 1420552, 1420553)
因此,我想知道是否有任何替代方法可以获得所需的结果。先感谢您。
解决方案
非常奇怪的用例...
但是假设您的 Db2 平台和版本支持表值构造函数...
尝试
with cte(id)
as (values (1420552),(1420553)
,(1420552),(1420553) )
select d.id
from data d
join cte c on d.id = c.id;
推荐阅读
- wordpress - 使用选项“X-Frame-Options”将远程站点加载到“sameorigin”
- javascript - 输入元素焦点()不起作用
- azure - 天蓝色搜索围绕 $skip 限制工作
- xml - XSLT:修复了从所有区域输出文本的问题
- php - PHP HP Fortify 将未经验证的数据发送到 Web 浏览器,这可能导致浏览器执行恶意代码
- vb.net - 在 Visual Studio 2012 中使用 VB 与 Agilent 33220A 交谈
- javascript - 在 reactjs 中获取组件属性值
- ios - 两个动态 SCNNode 不碰撞(Scenekit)
- android - 将视频文件转换为 gif
- java - Spring - Hikari CP failing for DB2