我的表中有一个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
不简单,希望对你有帮助。