nvarchar
テーブルにあらゆる種類の文字列を含むフィールドがあります。数字以外の記号の後に数字を含む文字列がある場合、その数字の前にスペースを挿入したいと思います。
つまり、そのフィールドの特定のエントリが である場合、abc123
に変換するabc 123
か、 にするab12.34
必要がab 12. 34
あります。テーブル全体でこれを行う必要があります。
それを達成するための最良の方法は何ですか?
nvarchar
テーブルにあらゆる種類の文字列を含むフィールドがあります。数字以外の記号の後に数字を含む文字列がある場合、その数字の前にスペースを挿入したいと思います。
つまり、そのフィールドの特定のエントリが である場合、abc123
に変換するabc 123
か、 にするab12.34
必要がab 12. 34
あります。テーブル全体でこれを行う必要があります。
それを達成するための最良の方法は何ですか?
あなたはそのようなことを試すことができます:
select left(col,PATINDEX('%[0-9]%',col)-1 )+space(1)+
case
when PATINDEX('%[.]%',col)<>0
then substring(col,PATINDEX('%[0-9]%',col),len(col)+1-PATINDEX('%[.]%',col))
+space(1)+
substring(col,PATINDEX('%[.]%',col)+1,len(col)+1-PATINDEX('%[.]%',col))
else substring(col,PATINDEX('%[0-9]%',col),len(col)+1-PATINDEX('%[0-9]%',col))
end
from tab
簡単ではありませんが、参考になれば幸いです。
関数 (MSDN へのリンク) を使用しました: LEFT、PATINDEX、SPACE、SUBSTRING、LEN 、および正規表現。