2017-01-30 8 views
3

列の値内で二重引用符を削除する必要があります。例えば、私はSQLサーバー2012の列内の二重引用符を削除する方法

  1. "テスト名(" 株式会社 ")"
  2. "テスト、 "信頼"(" 株式会社 ")"

以下のような値を持つテーブルの列を有しています私は、「株式会社」&「信託」を囲む二重引用符を削除する必要があり、列の値は、「テスト名(社)」

  • 「のテスト、T
    1. 次のように似ている必要があります錆(Inc)」

    私はREPLACE()関数で試しました。しかし、値の二重引用符をすべて置き換えます。しかし、私は値の最初と最後に引用符を保持したい。親切に助けてください

  • +0

    値の開始と終了は常にます –

    +0

    はい、ほとんどの場合、値の先頭と最後に二重引用符が付きます –

    答えて

    4

    文字列から二重引用符を削除するには置換を使用してください。接頭辞、接尾辞を二重引用符で囲みます。

    DECLARE @VAR VARCHAR(50)='"Testing Name ("Inc")"' 
    
    CREATE TABLE #TAB (COLUMN_VALUE VARCHAR(50)) 
    
    INSERT INTO #TAB 
    SELECT '"Testing Name ("Inc")"' 
    UNION ALL 
    SELECT '"Testing, "Trust" ("Inc")"' 
    

    は今、SELECT文の下に

    SELECT COLUMN_VALUE, '"'+REPLACE(COLUMN_VALUE,'"','') +'"' as NEW_COLUMN_VALUE FROM #TAB 
    

    をヒットし、値の開始と終了は、常に二重引用符が含まれています場合、結果は以下のスクリプトを試し、その後、

    +----------------------------+------------------------+ 
    |  COLUMN_VALUE  | NEW_COLUMN_VALUE | 
    +----------------------------+------------------------+ 
    | "Testing Name ("Inc")"  | "Testing Name (Inc)" | 
    | "Testing, "Trust" ("Inc")" | "Testing, Trust (Inc)" | 
    +----------------------------+------------------------+ 
    
    1

    になります。

    SELECT '"'+REPLACE([column],'"','')+'"' 
    FROM [table] 
    
    0

    開始し、文字列の末尾に「"」がある「「」開始と文字列の最後に、次に置き換える「」」と連結した場合、コードのチェックを以下に示します。文字列がない場合文字列のすべての位置に「「」文字列の開始時と終了時に、それだけで置き換え「」」と、それは開始と終了する連結していません持っている。

    CREATE TABLE #TAB (COLUMN_VALUE VARCHAR(50)) 
    
    INSERT INTO #TAB 
    SELECT '"Testing Name ("Inc")"' 
    UNION ALL 
    SELECT '"Testing, "Trust" ("Inc")"' 
    union all 
    select 'Testing Name ("Inc")' 
    union all 
    SELECT 'Testing, "Trust" ("Inc")' 
    union all 
    SELECT 'Testing, "Trust" ("Inc")"' 
    
    select * from #TAB 
    
    select 
        case when charindex('"',column_value,1)=1 and charindex('"',column_value,len(column_value))=len(column_value) 
         then '"'+REPLACE(COLUMN_VALUE,'"','') +'"' 
         else REPLACE(COLUMN_VALUE,'"','') 
        end as ClenedString 
    from #TAB; 
    
    関連する問題