我有8位列,A1,A2,a3,a4,b1,b2,b3,b4。所有8个都是完全独立的,并且基于这些应该填充另一个字段。具有案例/ IF的SQL更新
我想更新与文本A,B或AB,这取决于任何8列被设置为1。
下面是两个例子这个其他字段; - 所有8个字段被设置为1,然后用AB填充,
- 如果A3和B1被设置为1,然后用AB填充,
- 如果A1和A3被设置为1,然后用甲填充,
- 如果B4和B2被设置为1,则与B填充
所以通过B4 A1的任意组合的字段应该设置
下面是什么,我都试过,但它是不完整的,但会给一个想法;
UPDATE
从adrianm
UPDATE m
SET ref = ASet + BSet
FROM contactMaster m
inner join contact c on
m.contactid = c.contactid
CROSS APPLY (
SELECT CASE WHEN (c.A1 | c.A2 | c.A3 | c.A4) = 1 THEN 'C' ELSE '' END AS ASet
,CASE WHEN (c.B1 | c.B2 | c.B3 | c.B4) = 1 THEN 'D' ELSE '' END AS BSet
) AS CA1
where ref is null
正确答案
您的需求是不是真的清楚。您没有提及是否只有两列只能同时设置为'1',或者允许多个列。 – hallie
允许多个。所有8个都是完全独立的,其基础是其他领域应该被填充。 – windowskm
请花你的时间来编辑你的问题,并添加更多的细节。告诉我们您的确切要求是什么,您尝试过的内容(包括代码)以及您为什么陷入这些解决方案,帮助我们重现情况等等。 – Jeroen