我希望在SQL Server V 2008 +中的select statment中使用带有sqlserver的正则表达式。
我需要做的是获取专栏的第一个字。
和第二个将获得列的其余部分,不包括第一个单词。
我知道这很简单,但我对正则表达式并不擅长。
任何人都可以帮我这个吗?
答案 0 :(得分:0)
我不知道你会使用什么样的正则表达式,但是:
^\S+
- 第一个字
.+$
- 用于其余字符串
或者如果可以进行可分组
^(\S+) (.+)$
- 第一个词的第一个括号,其余的第二个词。
答案 1 :(得分:0)
看看Marc Gravell提供的this UDF。它为您提供了第一个单词...然后您可以创建另一个名为“AfterFirstWord”的UDF。
答案 2 :(得分:0)
你不需要像这样的正则表达式。只需使用SUBSTRING
和CHARINDEX
以及RIGHT
来完成句子的其余部分:
SELECT
SUBSTRING([COLUMN], 0, CHARINDEX(' ', [COLUMN])), -- Get substring before first space
RIGHT([COLUMN], LEN([COLUMN]) - CHARINDEX(' ', [COLUMN])) -- Get substring after first space
FROM
[TABLE]
SQL Server并不真正支持正则表达式,尽管您可以在线找到一些可下载的库。否则,您有PATINDEX
,虽然它使用正则表达式,但它不会返回匹配项,而是返回匹配项的索引。在您的情况下,使用CHARINDEX
要容易得多,因为您总是需要匹配空格字符。