选择单独显示已连接单词的查询,而不是使用函数

时间:2012-12-11 13:38:05

标签: sql sql-server tsql

我需要一个选择查询,根据大写字母的位置为数据添加空格,即使用此查询的“HelpMe”将显示为“帮助我”。注意我不能使用存储的函数来执行此操作必须在查询本身中完成。数据的长度可变,查询必须在SQL中。任何帮助将不胜感激。 谢谢

2 个答案:

答案 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这样的词语并不好。