[英]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.