我是编写SQL脚本的新手,可以使用一些帮助。我需要创建一个只运行一次的脚本,并将列添加到现有表中。此列需要具有直接依赖于另一列的值的值。该值取决于另一列的文本值是否包含一些文本。
例如,我需要一种方式来说明以下值“MNA-HLTH-CAR”:
if (tableValue.contains("HLTH")) {
newColumn.insert("Health"); //Insert new column value Health
} else if (tableValue.contains......
到目前为止,我有尝试:
ALTER TABLE [table_name]
ADD [new_element] varchar(5)
IF
CONTAINS([column_name], "HLTH")
我可能很恐怖,可以使用一些帮助。谢谢!
答案 0 :(得分:6)
如果列始终是依赖的,并且您使用的是支持它的DBMS,则可以使用计算列。对于SQL Server,它看起来像:
alter table YourTable
add YourColumn as
(
case
when OtherColumn like '%Health%' then 'HLTH'
else 'Default'
end
)
要添加包含值的实际列,您可以使用两步法。添加列后:
alter table YourTable
add YourColumn varchar(5)
运行更新查询以设置其值:
update YourTable
set YourColumn =
case
when OtherColumn like '%Health%' then 'HLTH'
else 'Default'
end
那应该初始化新列。但与计算列不同,现在由您来维护它。