postgresql - Postgresql向函数内的交叉表查询添加参数
问题描述
我正在尝试在交叉表查询中添加一些参数,如下所示:
create or replace function my_function(param1 character varying, param2 date)
returns table (
...
...
as
$$
with t as
(
SELECT * FROM crosstab('
SELECT something , period, value
FROM my_table
WHERE some_value = $1 and some_date = $2
ORDER BY 1,2 ',
'SELECT p FROM generate_series(1,10) p'
)
AS ct(
...
$$
如何从函数输入中获取提供的参数 param1 和 param2 到值 $1 和 $2?
解决方案
您可以format()
在构建查询字符串时使用
...
SELECT * FROM crosstab(format('
SELECT something , period, value
FROM my_table
WHERE some_value = %s and some_date = %s
ORDER BY 1,2 ',param1 ,param2),
'SELECT p FROM generate_series(1,10) p'
)
推荐阅读
- sapui5 - 如何将 XML 片段添加到 XML 视图?
- delphi - 在 Delphi 6 中使用 Indy 8.0.26 的 PUT 命令
- scala - Scala 定义的命名约定
- blender - Openscenegraph 到虚幻引擎
- c# - ibatis data mapper如何计算SQL命令是否完成
- c++ - QList 中的 ASSERT 失败
::operator[]: QJoysticks 中的“索引超出范围” - css - CSS:元素的高度基于它旁边的图像高度?
- python - 如何将wav文件的一波平移180度
- spring-boot - Spring Boot + 弹性搜索 + Maven
- c++ - 在 xCode 和 Visual Studio 中启用 C++ 全面优化