我的表中有一个nvarchar
字段,其中包含各种字符串。
如果有一个字符串包含一个非数字符号后面的数字,我想在该数字前插入一个空格。
即 - 如果该字段中的某个条目为abc123
,则应将其转为abc 123
,或ab12.34
应变为ab 12. 34
。我希望这是在整个表格中完成。
实现目标的最佳途径是什么?
答案 0 :(得分:0)
你可以尝试这样的事情:
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 和regular expression。