1

我对编写 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")

我可能很糟糕,可以使用一些帮助。谢谢!

4

1 回答 1

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

那应该初始化新列。但与计算列不同,现在由您来维护它。

于 2013-05-13T13:45:40.037 回答