我当前正在尝试执行一种SQL查询,该查询可以检测SELECT查询是否未返回任何内容,然后再进行另一种查询(如果是这种情况)。

这是我的意思:

IF SELECT * FROM table WHERE criteria = criteria RETURNS NO ROWS
THEN SELECT * FROM table WHERE criteria2 = criteria2

这可能吗?我认为空的答复不算作“空”,因此我对此有些麻烦。

最佳答案

假设各列相同,则可以在一条语句中执行此操作:

SELECT *
FROM table
WHERE criteria = criteria
UNION ALL
SELECT *
FROM table
WHERE criteria2 = criteria2 AND
      NOT EXISTS (SELECT 1 FROM table WHERE criteria = criteria);

关于SQL-如果Select不返回任何内容,则执行另一个Select,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42089781/

10-11 17:34