使用联合在 Sql 服务器中不起作用的三个 IF 存在条件选择语句的结果组合



我有三个sql select语句,格式为If Exists((,如下所示:

IF exists(
Select 1 * from table1
)
IF exists(
Select 2 * from table2
)
IF exists(
Select 3 * from table3
)

三个表结果返回相同的列,但它们在 if 内部具有不同的计算。现在我得到单独的三个表作为结果,我需要将它们连接为一个我尝试过使用 Union 但没有工作的表。欢迎任何建议。

编辑结果现在我得到像:

Table1 ===> From |   To  | Hours
Table2====> From | To | Hours
Table3===> From | To | Hours

我需要在单个表中包含所有这些表值。这三个表值可能包含也可能不包含多个行或空值(无行(

我不知道为什么union不适合您,但是如果您使用的是union all,则无需使用exists

select t1.col1, t1.col2
from table1 t1
union all
select t2.col1, t2.col2
from table2 t2
union all
select t3.col1, t3.col2
from table3 t3;

注意:

  • 所有SELECT中的表达式/列数必须相同 语句。
  • 相应的表达式/列在SELECT语句中必须具有相同的数据类型。

我在朋友的帮助下使用 #Temp 表解决了这个问题。每次我从一个表中获取值并将其插入临时表时,我都会像对所有表值一样明智地将其插入临时表中。 最后,我打印了临时表值。正如我所料也得到了结果!谢谢。

最新更新