Postgres数据库“查询没有结果数据的目的地”错误

查姆

我正在尝试将MSSQL查询转换为POSTGRES查询。我无法在Postgres中执行以下查询

DO $$
BEGIN
IF EXISTS (SELECT ID FROM PROCESS WHERE ID = (SELECT MAX(ID) FROM PROCESS WHERE NAME = 'TRANSACTION')) THEN
SELECT * FROM MSG
WHERE msg_timestamp >= ( SELECT start_time FROM PROCESS WHERE NAME = 'TRANSACTION' AND STATUS = 'STARTED');
ELSE
SELECT * FROM MSG;
END IF;
END $$;

错误:

查询没有结果数据的目的地提示:如果要舍弃SELECT的结果,请改用PERFORM。上下文:SQL语句FCMDBPOSTGRES =#处的PL / pgSQL函数inline_code_block第7行

我对应的MSSQL查询如下所示

IF EXISTS (SELECT ID FROM PROCESS WHERE ID = (SELECT MAX(ID) FROM PROCESS WHERE NAME = 'TRANSACTION'))
BEGIN
   SELECT * FROM MSG
WHERE msg_timestamp >= ( SELECT start_time FROM PROCESS WHERE NAME = 'TRANSACTION' AND STATUS = 'STARTED')
END
ELSE
BEGIN
    SELECT * FROM MSG
END
阿贝里斯托

您不需要此do语句,只需使用普通的SQL:

SELECT * FROM MSG
WHERE 
    NOT EXISTS (SELECT ID FROM PROCESS WHERE ID = (SELECT MAX(ID) FROM PROCESS WHERE NAME = 'TRANSACTION'))
    OR msg_timestamp >= (SELECT start_time FROM PROCESS WHERE NAME = 'TRANSACTION' AND STATUS = 'STARTED');

或更详细地说:

SELECT * FROM MSG
WHERE 
    CASE
        WHEN EXISTS (SELECT ID FROM PROCESS WHERE ID = (SELECT MAX(ID) FROM PROCESS WHERE NAME = 'TRANSACTION'))
            THEN msg_timestamp >= (SELECT start_time FROM PROCESS WHERE NAME = 'TRANSACTION' AND STATUS = 'STARTED')
        ELSE TRUE
    END;

或更简单地说:

SELECT * FROM MSG
WHERE 
    msg_timestamp >= coalesce(
        (SELECT start_time FROM PROCESS WHERE NAME = 'TRANSACTION' AND STATUS = 'STARTED'),
        '-infinity');

顺便说一句,如果我理解正确

EXISTS (SELECT ID FROM PROCESS WHERE ID = (SELECT MAX(ID) FROM PROCESS WHERE NAME = 'TRANSACTION'))

可以简化为

EXISTS (SELECT 1 FROM PROCESS WHERE NAME = 'TRANSACTION')

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:查询没有结果数据的目的地

来自分类Dev

错误:查询没有结果数据的目的地

来自分类Dev

PostgreSQL:查询没有结果数据的目的地

来自分类Dev

查询没有结果数据的目的地

来自分类Dev

PostgreSQL查询没有结果数据的目的地

来自分类Dev

PL / pgSQL中的EXPLAIN ANALYZE给出错误:“查询没有结果数据的目的地”

来自分类Dev

错误:使用游标时查询没有结果数据的目的地

来自分类Dev

PL / pgSQL函数中的“错误:查询没有结果数据的目的地”

来自分类Dev

PostgreSQL函数错误ERROR:查询没有结果数据的目的地

来自分类Dev

存储过程给出错误:查询没有结果数据的目的地

来自分类Dev

错误:使用游标时查询没有结果数据的目的地

来自分类Dev

触发函数返回:查询没有结果数据的目的地

来自分类Dev

INSERT INTO错误:结果数据无目的地

来自分类Dev

恢复Postgres数据库挂起-没有错误

来自分类Dev

选择我的数据库的最热门的目的地在MySQL

来自分类Dev

没有从数据库获得结果

来自分类Dev

PHP表单到数据库-没有错误,但没有结果

来自分类Dev

Postgres数据库查询以过滤活动记录结果

来自分类Dev

查询postgres数据库

来自分类Dev

Flutter:Firebase实时数据库orderByChild对查询结果没有影响

来自分类Dev

SQLite 数据库查询返回错误结果

来自分类Dev

来自PHP的数据库查询没有结果,但是对phpMyAdmin进行相同的查询有效吗?

来自分类Dev

如何查询一个数据库,如果没有返回结果,则查询另一个数据库?

来自分类Dev

为什么数据库结果没有显示重音?

来自分类Dev

Wordpress wpdb 没有从数据库中获取结果

来自分类Dev

我有数据库BUR错误:SQL(查询)错误或丢失的数据库

来自分类Dev

我的登录脚本没有正确查询数据库

来自分类Dev

即使没有查询错误,也没有在 Access 数据库表中插入任何内容 (c#)

来自分类Dev

Django postgres查询结果针对不同的数据库字段获得不同的结果

Related 相关文章

  1. 1

    错误:查询没有结果数据的目的地

  2. 2

    错误:查询没有结果数据的目的地

  3. 3

    PostgreSQL:查询没有结果数据的目的地

  4. 4

    查询没有结果数据的目的地

  5. 5

    PostgreSQL查询没有结果数据的目的地

  6. 6

    PL / pgSQL中的EXPLAIN ANALYZE给出错误:“查询没有结果数据的目的地”

  7. 7

    错误:使用游标时查询没有结果数据的目的地

  8. 8

    PL / pgSQL函数中的“错误:查询没有结果数据的目的地”

  9. 9

    PostgreSQL函数错误ERROR:查询没有结果数据的目的地

  10. 10

    存储过程给出错误:查询没有结果数据的目的地

  11. 11

    错误:使用游标时查询没有结果数据的目的地

  12. 12

    触发函数返回:查询没有结果数据的目的地

  13. 13

    INSERT INTO错误:结果数据无目的地

  14. 14

    恢复Postgres数据库挂起-没有错误

  15. 15

    选择我的数据库的最热门的目的地在MySQL

  16. 16

    没有从数据库获得结果

  17. 17

    PHP表单到数据库-没有错误,但没有结果

  18. 18

    Postgres数据库查询以过滤活动记录结果

  19. 19

    查询postgres数据库

  20. 20

    Flutter:Firebase实时数据库orderByChild对查询结果没有影响

  21. 21

    SQLite 数据库查询返回错误结果

  22. 22

    来自PHP的数据库查询没有结果,但是对phpMyAdmin进行相同的查询有效吗?

  23. 23

    如何查询一个数据库,如果没有返回结果,则查询另一个数据库?

  24. 24

    为什么数据库结果没有显示重音?

  25. 25

    Wordpress wpdb 没有从数据库中获取结果

  26. 26

    我有数据库BUR错误:SQL(查询)错误或丢失的数据库

  27. 27

    我的登录脚本没有正确查询数据库

  28. 28

    即使没有查询错误,也没有在 Access 数据库表中插入任何内容 (c#)

  29. 29

    Django postgres查询结果针对不同的数据库字段获得不同的结果

热门标签

归档