2016-05-06 10 views
1

私はvarcharカラムを持ち、各フィールドには1つの単語が含まれていますが、単語の前後にランダムな数のパイプ文字があります。複数の繰り返し文字を1つに置き換えます

このような何か:

MyVarcharColumn 
'|||Apple|||||' 
'|||||Pear|||||' 
'||Leaf|' 

私はテーブルを照会するとき、私は単一のものに複数のパイプを交換したいので、結果はこのようになります:

MyVarcharColumn 
'|Apple|' 
'|Pear|' 
'|Leaf|' 

把握することはできませんどのようにREPLACE関数でそれを解決するには、誰も知っている?

答えて

2

vkpの方法は、あなたの問題を完全に解決します。他のさまざまな状況で動作するも動作し、もう一つの方法は、氏VPKのメソッドは文字列をCONCATする場所あなたが複数の文字列の区切りを維持することができますトリプルREPLACE()

SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||', '|', '><'), '<>',''), '><','|') 

このメソッドを使用しており、非常に最初と最後にデリムを入れてください。

SELECT REPLACE(REPLACE(REPLACE('|||Apple|||||Banana||||||||||', '|', '><'), '<>',''), '><','|') 
+0

@これはかなり素晴らしいです、ありがとう:)この@dfundako – vacip

+0

は、より汎用性があり、解決策としてマーク – Avithohol

6

1つの方法は、|のすべてを空白で置き換え、文字列の先頭と末尾にパイプ文字を追加することです。

select '|'+replace(mycolumn,'|','')+'|' from tablename 
+0

は、それが私のケースを解決するが、dfundakoのソリューションは、より汎用性のある – Avithohol

関連する問題