我需要一个选择查询,根据大写字母的位置为数据添加空格,即使用此查询的“HelpMe”将显示为“帮助我”。注意我不能使用存储的函数来执行此操作必须在查询本身中完成。数据的长度可变,查询必须在SQL中。任何帮助将不胜感激。 谢谢
答案 0 :(得分:1)
您需要使用用户定义的函数,直到MS为我们提供正则表达式的支持。解决方案就像:
SELECT col1, dbo.RegExReplace(col1, '([A-Z])',' \1') FROM Table
Aldo这会产生你可以用TRIM删除的领先空间。
替换常规表达函数:
http://connect.microsoft.com/SQLServer/feedback/details/378520
关于dbo.RegexReplace,您可以阅读:
TSQL Replace all non a-z/A-Z characters with an empty string
答案 1 :(得分:0)
假设您使用Oracle
RDBMS,则使用以下内容
REGEX_REPLACE
SELECT REGEXP_REPLACE('ILikeToWatchCSIMiami',
'([A-Z.])', ' \1')
AS RX_REPLACE
FROM dual
;
管理以获得此输出:* SQLFIDDLE
但是,正如你所看到的那样,对CSI
这样的词语并不好。