2017-10-11 9 views
1

SQLのCASEステートメントを使用して列の文字を変更したいと思います。 コードは、問題は名前が異なる種類(例えばøとå)の複数の文字を持っている場合、それが唯一の彼らの唯一の(case文の最初の1を交換することで、次のCASEステートメントで複数の文字を置換する、SQL

CASE 
    WHEN [EmpName] LIKE '%æ%' 
     THEN REPLACE([EmpName], 'æ', 'ae') 

    WHEN [EmpName] LIKE '%ø%' 
     THEN REPLACE([EmpName], 'ø', 'oe') 

    WHEN [EmpName] LIKE '%å%' 
     THEN REPLACE([EmpName], 'å', 'aa') 

    WHEN [EmpName] LIKE '%-%' 
     THEN REPLACE([EmpName], '-', '') 

    ELSE [EmpName] 
END [EmpName (no special characters)] 

ですそれはφです)。 CASE文のすべての文字を一度に置き換える方法はありますか?

ありがとうございました!

+0

MySQL、Oracle、またはMS SQL Serverを使用していますか?関与していない製品にはタグを付けないでください。 – jarlh

+2

ケースの式をスキップすると、ネストされたreplaceがトリックになります。 – jarlh

+0

私はそれをした理由のいずれかを使用することができます:) それはbtw働いた! ありがとうございます!!!!! –

答えて

2

この場合、CASE-WHEN構成は表面的です。

REPLACE(
    REPLACE(
    REPLACE(
     REPLACE([EmpName], 'æ', 'ae'), 
    'ø', 'oe'), 
    'å', 'aa'), 
'-', '') 

残念ながら、置換文字列がオリジナルと異なるサイズを持っている:あなたはこのように見える塊REPLACEを、必要とします。だからここでTRANSLATEを使うことはできません。

+0

ありがとう、それは動作します:) –

関連する問題