簡體   English   中英

SQL Server:如何為不同的INSERT INTO語句編寫CASE查詢?

[英]SQL Server : how to write a CASE query for a different INSERT INTO statements?

問題是指T-SQL查詢。

有兩個表:

表-A:

 A_ID | Category | SomeValue .
 -----+----------+-----------.
   0  |    1     |   ...     .
   1  |    1     |   ...     .
   2  |    2     |   ...     .
   2  |    2     |   ...     .

Table_B應該由Table_A的Category條件填充。 根據Table_A的類別,我想將一些數據寫入第二個表的第1列或第2列 另一列應保持為空:

 B_ID | cat_x    | cat_y     .
 -----+----------+-----------.
   0  | someval  |   null    . //Category was 1
   1  |  null    |  someval  . //Category was 2
   2  |  null    |  someval  . //Category was 2
   2  | someval  |   null    . //Category was 1

我的輸入是整個表格。 對於每一行,都必須查找目標列以進行寫入。

我曾嘗試與CASE合作,但沒有得到。 以下是一些偽代碼,可以幫助您理解:

CASE
   WHEN Category=1
      THEN 
         INSERT INTO (B_ID,cat_x)
             SELECT (someval) //ID could get filled automatically
             FROM sometable
   WHEN Category = 2
      THEN 
         INSERT INTO (B_ID,cat_y)
             SELECT (someval) //ID could get filled automatically
             FROM sometable
END

我猜我最大的問題是如何為條件/從句編寫語法。

不完全的。 case表達式應該是`select查詢的一部分:

INSERT INTO (B_ID, cat_x, cat_y)
        SELECT (case when a.category = 1 then someval end),
               (case when a.category = 2 then someval end)
        FROM A
        WHERE category IN (1, 2);

暫無
暫無

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

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