我有一个在SQL中看起来像这样的数据集。
score = svmModel.predict(testData)
如果Col3 = 1,如何使用Col3中的值添加包含Col2值的新列,或者将现有值保留在Col2中。
最终预期产出:
Col1 Col2 Col3
A 4 1
B 5 NULL
C 6 1
D 7 NULL
E 8 NULL
我尝试了合并功能,但我觉得这不起作用:
Col1 Col2 Col3 Col4
A 4 1 1
B 5 NULL 5
C 6 1 1
D 7 NULL 7
E 8 NULL 8
答案 0 :(得分:1)
您的说明建议使用case
表达式:
select . . .
(case when col3 = 1 then col3 else col2 end) as col4
您也可以将上述内容表达为
select . . .
(case when col3 = 1 then 1 else col2 end) as col4
对于您提供的数据,coalesce()
也应该有效。
答案 1 :(得分:0)
试试这个:
SELECT
Col1,
Col2,
Col3,
CASE WHEN Col3 IS NOT NULL THEN Col3 ELSE Col2 END AS Col4
FROM table1
答案 2 :(得分:0)
-- this should do what you want
SELECT
Col1,
Col2,
Col3,
CASE WHEN Col3 = 1 THEN Col3 ELSE Col2 END AS NewCOL
FROM table1
答案 3 :(得分:0)
Insert into table2
select
Col1,
Col2,
Col3,
(case when col3 = 1 then 1 else col2 end) as col4
FROM table1