xml - 如何将子查询用作变量并在返回查询中使用变量 - Postgres 函数
问题描述
我有数据作为 xml 文件,所以第一步是将其转换为列,稍后在我的选择查询中使用这些列。
这两个步骤都应该在同一个函数中(将 XML 转换为列、SQL 查询)。
name_a := (select name from(SELECT unnest (xpath(' //name/text()',
xml_string))::text as name)as foo))
return query select * from table1 inner join table2 on table2.name in (name_a)
解决方案
最好不要使用变量,而是将子查询直接放入IN
最终语句的子句中。
如果你想使用一个变量,它应该是一个数组变量。要么不要unnest
使用 usearray_agg
将其转换回数组。
然后可以像这样使用该数组变量:
... WHERE table2.name = ANY (array_var)
推荐阅读
- performance - Jenkins 与 Active Directory 的集成对于大多数用户来说性能非常缓慢
- reactjs - 使用 ref 在反应中单击了获取元素
- slack - 您可以隐藏 Slack 预览的 URL 吗?
- android - 在函数中给它一个值后,值变为空
- reactjs - 使用 shouldComponentUpdate() 防止重新安装昂贵的(类)组件(图像列表,路由器内部)
- powershell - 尝试在 Jenkins 配置中使用 winrm 将特定文件夹从本地系统复制到远程 VM 时如何避免此错误?
- java - 通过 ResourceBundle 访问属性文件时出错
- flutter - Flutter Plugins pub 冲突,当其他依赖项依赖它并且它还在开发中时
- latex - 如何更改奇数页和偶数页的顶部和底部页边距?
- java - 前面的词=做什么?