如果它的值大于零,我将从列A中选择现有的列C.如果没有,那么我想用列B填充它。只有当列B为零时才会填充列A.如果A列和B列都有值,则它总是使用B.任何帮助都将受到赞赏。
(
CASE
WHEN column A > 0 THEN column A
ELSE column B
END
)
我的插入是正确的,但是我的选择将列反转,这导致我认为是错误。感谢您所有的帮助。什么是菜鸟做的事。
答案 0 :(得分:2)
您选择的数据库将非常有用,因为您在大多数RDBMS中看起来已经是正确的。只需坚持你已经选择的内容:
--Insert based on select
--INSERT INTO [TABLETOINSERT] (ColumnToInsert)
SELECT
CASE
WHEN ColumnA > 0 THEN ColumnA
ELSE ColumnB
END AS NewColumn
--Or create a table the select
--INTO [NEWTABLENAME]
FROM [TABLENAME]
或更新:
UPDATE [TABLENAME]
SET NewColumn =
CASE
WHEN ColumnA > 0 THEN ColumnA
ELSE ColumnB
END
答案 1 :(得分:2)
假设您要永久更新值,而不是在select期间更改它,请执行:
update MyTable
set ColumnC = CASE
WHEN ColumnA > 0 THEN ColumnA
ELSE ColumnB
END