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