CREATE FUNCTION dbo.SplitAlphaNum (@InputString VARCHAR(100))
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @OutputString VARCHAR(100) = '', @Index INT = 1;
WHILE @Index <= LEN(@InputString)
BEGIN
IF SUBSTRING(@InputString, @Index, 1) LIKE '[A-Za-z]'
BEGIN
SET @OutputString += ' ' + SUBSTRING(@InputString, @Index, 1);
END
ELSE
BEGIN
SET @OutputString += SUBSTRING(@InputString, @Index, 1);
END
SET @Index += 1;
END
RETURN LTRIM(RTRIM(@OutputString));
END
SELECT dbo.SplitAlphaNum('01ABC23fg98');
3条答案
按热度按时间8zzbczxx1#
如果我们将
REGEXP_REPLACE()
与捕获组一起使用,则可以这样做:∮ ∮ ∮ ∮
这个正则表达式替换将所有字母单词子字符串替换为两边用空格包围的相同子字符串。应该理解,这有效地将字母单词子字符串与数字子字符串分开。外部调用
TRIM()
是必要的,因为如果字母单词出现在输入字符串的开头或结尾,替换将导致前导或尾随空格。5fjcxozz2#
要在SQL中拆分字符串并在字母和数字之间添加空格,可以组合使用字符串函数和正则表达式。下面是使用用户定义函数实现此目的的SQL查询示例:
上面的查询定义了一个名为dbo.SplitAlphaNum的用户定义函数,该函数将输入字符串作为参数,并返回在字母和数字之间添加空格的输出字符串。
该函数循环遍历输入字符串中的每个字符,如果字符是字母表,则在其前面添加一个空格;否则,它只是将该字符添加到输出字符串中。最后,它在返回输出字符串之前,从输出字符串中删除任何前导或尾随空格。
要使用该函数,只需在SELECT语句中将输入字符串作为参数调用它即可,如上面的示例所示。
mnemlml83#
当然,但你没有告诉你想要哪种编程语言,但无论如何,我会在python上这样做,我们开始:
输出必须如下所示:01 ABC 23装配98