我需要一个选择查询,它根据大写字母的位置向数据添加一个空格,即使用此查询的“HelpMe”将显示为“Help Me”。请注意,我不能使用存储的函数来执行此操作,它必须在查询本身中完成。数据是可变长度的,查询必须在 SQL 中。任何帮助将不胜感激。谢谢
问问题
99 次
2 回答
1
您需要为此使用用户定义的函数,直到 MS 为我们提供对正则表达式的支持。解决方案类似于:
SELECT col1, dbo.RegExReplace(col1, '([A-Z])',' \1') FROM Table
Aldo 这将产生可以使用 TRIM 删除的前导空间。
替换正则表达式函数:
http://connect.microsoft.com/SQLServer/feedback/details/378520
关于 dbo.RegexReplace,您可以在以下位置阅读:
于 2012-12-11T14:29:15.030 回答
0
假设如果您使用的是Oracle
RDBMS,则使用以下内容,
REGEX_REPLACE
SELECT REGEXP_REPLACE('ILikeToWatchCSIMiami',
'([A-Z.])', ' \1')
AS RX_REPLACE
FROM dual
;
设法得到这个输出:* SQLFIDDLE
但正如你所见,它对诸如CSI
虽然这样的词的处理并不好。
于 2012-12-11T14:36:18.240 回答