gpt4 book ai didi

sql - 在 postgres 中合并查询

转载 作者:行者123 更新时间:2023-11-29 13:14:46 25 4
gpt4 key购买 nike

我有一个问题:

SELECT $ID_TABLE,
TO_CHAR($DATE_COLUMN,'YYYYMMDD') ,
'$UPPER_HOUR',
COUNT(1)
FROM $TABLE_NAME
WHERE DATE_TRUNC('day',$DATE_COLUMN) = cast('$TODAY' as date)
AND TO_CHAR($DATE_COLUMN,'HH24MI') BETWEEN '$LOWER_HOUR' AND '$UPPER_HOUR'
GROUP BY TO_CHAR($DATE_COLUMN,'YYYYMMDD');

但在某些情况下查询有数据在其他情况下为空。

然后如果为 null 我需要选择其他值,例如:

SELECT(coalesce(
SELECT $ID_TABLE,
TO_CHAR($DATE_COLUMN,'YYYYMMDD') ,
'$UPPER_HOUR',
COUNT(1)
FROM $TABLE_NAME
WHERE DATE_TRUNC('day',$DATE_COLUMN) = cast('$TODAY' as date)
AND TO_CHAR($DATE_COLUMN,'HH24MI') BETWEEN '$LOWER_HOUR' AND '$UPPER_HOUR'
GROUP BY TO_CHAR($DATE_COLUMN,'YYYYMMDD')),select $ID_TABLE, $date, $PPER_HOUR, 0);"

有可能做那样的事情。

这是针对使用该选择进行插入的进程。

如果我没有任何行,我需要插入具有常量日期和计数 (1)= 0 的值。

带有$的值是常量

谢谢;)

最佳答案

只有当查询返回单个值时,才能以这种方式使用 coalesce()

您可以使用 plpgsql blockFOUND variable ,就像在这个伪代码中一样:

do $$
begin
insert into my_table
<a select query>;

if not found then
insert into my_table
values(<some default values>);
end if;
end $$;

关于sql - 在 postgres 中合并查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50538204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com