代码之家  ›  专栏  ›  技术社区  ›  Doonie Darkoo

如何在CASE中执行SELECT语句

  •  2
  • Doonie Darkoo  · 技术社区  · 6 年前

    我有两个 SELECT 比方说。

    SELECT FullName FROM TableA
    SELECT FirstName FROM  TableB
    

    我想在中执行这两条语句 CASE 或者如果有其他选择的话。

    如果 SELECT FullName FROM TableA 返回 NULL

    SELECT FirstName FROM TableB

    我需要两个 案例 语句,但每个表中大约有20列,这将使 40 CASE 语句最终使查询变得非常冗长。

    2 回复  |  直到 6 年前
        1
  •  2
  •   Derviş Kayımbaşıoğlu    6 年前
    SELECT FullName FROM TableA
    union 
    SELECT FirstName FROM  TableB 
    where not exists 
      (SELECT FullName FROM TableA)
    

    Working Fiddle

        2
  •  1
  •   Angel M.    6 年前

    我想这就是你要寻找的:

    IF EXISTS (SELECT 1 FROM TableA) 
        SELECT FullName AS Name, TableA.Field1 AS FinalField1, 
               TableA.Field2 AS FinalField2... 
        FROM TableA
    ELSE
        SELECT FirstName AS Name, TableB.Field1 AS FinalField1, 
               TableB.Field2 AS FinalField2... 
        FROM TableB