Sql server 如何在sql server中查找字符串中的特殊字符并将其拆分为单词?
我有这样的“铃木GSX_1300/TWOWHEELER”线 现在,我想将上面的字符串拆分为单词,并将一个单词一个单词插入一个表中Sql server 如何在sql server中查找字符串中的特殊字符并将其拆分为单词?,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有这样的“铃木GSX_1300/TWOWHEELER”线 现在,我想将上面的字符串拆分为单词,并将一个单词一个单词插入一个表中 DECLARE @a TABLE (a nvarchar(500)); declare @RTADESC nvarchar(100) = 'SUZUKI GSX_1300/TWOWHEELER'; declare @b int =1; declare @c int; set @c=CHARINDEX('_',@RTADESC,@b); WHILE @c>0
DECLARE @a TABLE (a nvarchar(500));
declare @RTADESC nvarchar(100) = 'SUZUKI GSX_1300/TWOWHEELER';
declare @b int =1;
declare @c int;
set @c=CHARINDEX('_',@RTADESC,@b);
WHILE @c>0
BEGIN
SELECT @b= CHARINDEX('_' ,@RTADESC,@b)+1
INSERT INTO @a
SELECT SUBSTRING(@RTADESC,0,@b-1)
set @c=CHARINDEX('_',@RTADESC,@b)
END
SELECT * FROM @a
现在我想看到表@a中的数据,如下所示
SUZUKI
GSX
1300
TWOWHEELER
基于此,我将在我的表格中搜索汽车制造商
因此,请帮助我如何分割字符串,我将来可能会得到不同的特殊字符。以下是一些非常好的选项:
也有一些解决方案允许您传递分隔符,因此您可以在将来传递不同的分隔符。以下是一些非常好的选项:
有一些解决方案允许您也传递分隔符,因此您可以在将来传递不同的分隔符。关于SQL Server中拆分的想法:。关于SQL Server中拆分的想法:。@Dd2很好。只要分隔符的范围相对较小,就可以使用一系列返回任何特殊字符的第一个实例的
case when
语句。我建议将其作为一个独立的函数,以使代码更干净,特别是因为数据结构无疑需要在将来再次执行相同的任务。@Dd2考虑到OP在任何给定查询上可能执行的搜索数量,这可能是更明智的选择,因为它应该执行得更快。可能是一个新的计算持久化列,它用一个分隔符保存字符串的版本?!或者只是分成相应的列(制造商、制造商、型号、车轮等),然后正确地进行标准化@Dd2很好。只要分隔符的范围相对较小,就可以使用一系列返回任何特殊字符的第一个实例的case when
语句。我建议将其作为一个独立的函数,以使代码更干净,特别是因为数据结构无疑需要在将来再次执行相同的任务。@Dd2考虑到OP在任何给定查询上可能执行的搜索数量,这可能是更明智的选择,因为它应该执行得更快。可能是一个新的计算持久化列,它用一个分隔符保存字符串的版本?!或者只是分成相应的列(制造商、制造商、型号、车轮等),然后正确地进行标准化