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