sql >> データベース >  >> RDS >> Sqlserver

文字列の一部を、相互参照一時テーブルの大文字の同等のものに置き換えます-tsql

    このアクションを繰り返し実行できるテーブルの置換として使用する値がある場合は、置換を実行する関数を作成できます。

    create function replacement(@string varchar(max))
    returns varchar(max)
    as
    begin
    
        with ReplaceWord(InternalWord, ExternalWord) as
        (
            select InternalValue, ExternalValue
            from capital
        )
        select @string =  REPLACE(@string, r.InternalWord, r.ExternalWord)
        from ReplaceWord r
        where CHARINDEX(r.InternalWord, @string) > 0
    
        return @string
    end
    

    次に、使用できるデータをクエリするには:

    SELECT dbo.replacement(i.Instrument) NewValue
    FROM instrument AS i
    

    SQL Fiddle withDemo を参照してください。

    どちらが返されますか:

    |                                     NEWVALUE |
    ------------------------------------------------
    |            Merck & Co INC Common Stock USD.5 |
    | Newmont Mining CORP Common Stock USD INC 1.6 |
    

    注:ベースコードここ を見つけました @SQL Kiwiから、これが一貫して実行する必要がある場合に関数を使用するように変更しました。



    1. 大規模なデータベースに命名規則を使用するにはどうすればよいですか?

    2. Oracleでプロセスが複数回実行されないようにする最善の方法はありますか?

    3. パート2:MariaDBサーバーとTensorFlowを使用した画像分類–チュートリアル

    4. OracleSQLDeveloper-ドロップされたテーブルをリカバリする方法