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
        )

値を含む実際の列を追加するには、2 段階のアプローチを使用できます。列を追加した後:

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 に答える