簡體   English   中英

Sql Case語句錯誤無法選擇多個列

[英]Sql Case Statement Error Cannot select More Than one Column

我需要從Case語句中的SQL Select語句獲取供應商ID。 A.SUPPLIER_ID放入Select語句后,出現錯誤。 這個怎么做?

Select 
       CASE 
         WHEN  TYPE = 1 THEN 
           (
              SELECT A.name 
              from BIZZXE_V2_SCH.SUPPLIERS A
              where A.SUPPLIER_ID = 30
           ) 
        ELSE
          (
            SELECT A.name 
            from BIZZXE_V2_SCH.STOCK_SUPPLIER A
            where A.SUPPLIER_ID = 31
          )
        END name
from DUAL;

您不能將完整的查詢放入case語句中。 但這應該有效

SELECT name
from BIZZXE_V2_SCH.SUPPLIERS
where SUPPLIER_ID = 30 and TYPE = 1
union all
SELECT name
from BIZZXE_V2_SCH.STOCK_SUPPLIER
where SUPPLIER_ID = 31 and TYPE <> 1

您應該能夠像這樣在WHERE語句中處理此問題。

SELECT A.name 
FROM BIZZXE_V2_SCH.STOCK_SUPPLIER A
WHERE (A.SUPPLIER_ID = 30 AND TYPE = 1) OR
A.SUPPLIER_ID = 31

使用IF/ELSE語句

DECLARE @type NUMBER;
SELECT TYPE INTO @type FROM DUAL; -- Make sure it always returns one row

IF @type = 1 THEN
    SELECT A.name 
    FROM BIZZXE_V2_SCH.SUPPLIERS A
    WHERE A.SUPPLIER_ID = 30;
ELSE
    SELECT A.name 
    FROM BIZZXE_V2_SCH.STOCK_SUPPLIER A
    WHERE A.SUPPLIER_ID = 31
END IF;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM