定义2个表的单个查询具有相同的行

时间:2018-01-09 08:54:35

标签: sql

查询1

(select count(*) from CALENDAR)

它返回15

查询2

(select value from PARAMETER where name = 'PLAN_HORIZON')

只有在程序运行时没有错误,它才会返回15。如果发生错误, 它返回10或其他值。

这个↓是错误的sql,但我想要一个返回True或False的查询。

select if (query1 == query2) 

如何定义2个sql在查询中有相同的结果?

3 个答案:

答案 0 :(得分:0)

这样的事情:

select count(*) = 0 
from (
  select count(*)
  from calendar
  except
  select value 
  from parameter 
  where name = 'PLAN_HORIZON'
) t

您没有指定DBMS,但以上是标准SQL。

答案 1 :(得分:0)

以下SQL语句返回0或1.它与SQL Server一起运行

SELECT CASE WHEN(从CALENDAR中选择计数(*))=(从PARAMETER中选择值,其中name ='PLAN_HORIZON')那么1 ELSE 0 END

答案 2 :(得分:0)

尝试此查询!

SELECT 
   CASE
      WHEN (select count(*) from CALENDAR) = (select value from PARAMETER 
                                             where name = 'PLAN_HORIZON')
                 THEN  true
                 ELSE  false
   END ;