select substring(TEST_COL+',',number,charindex(',',TEST_COL+',',number)-number)
from TEST_TABLE ,master..spt_values s
where type='p' and number>0 and substring(','+TEST_COL,number,1)=','
                    select INTERNAL_FAULT_REASON from TEST_TABLE ;select substring(TEST_COL+',',number,charindex(',',TEST_COL+',',number)-number)from TEST_TABLE ,master..spt_values swhere type='p' and number>0 and substring(','+TEST_COL,number,1)=','
insert into str_de values('xugq','北京');
insert into str_de values('xugq','陕西');
insert into str_de values('xugq','深圳');
insert into...
				
CREATE TABLE TA(id INT,[value] VARCHAR(100), class VARCHAR(10)); INSERT INTO TA(id,[value],class) SELECT 1,'3,2,4,5','no' UNION ALL SELECT 2,'5,1,1+2','yes'   SELECT T.id   ,SUBSTRING(T.[va
Create FUNCTION [dbo].[fn_SplitTSQL] (@String NVARCHAR(MAX), @Separator NCHAR(1) = N',') RETURNS TABLE RETURN SELECT -- N - LEN(REPLACE(LEFT(S, N), @Separator, '')) + 1 AS POS, ROW_NUMBER() OVER (ORDE... /***********Function**************/ create Function StrToTable(@str varchar(1000)) Returns @tableName Table str2table varc... charindex(@split,@datas) #获取第一个分隔符所在位置 #@split为分隔符,通过什么分隔符号进行字段分隔 #@datas为含有分隔符的字段,对此字段进行分隔 substring(@datas,@startindex,@endindex) #截取字段 #@datas用于截取的字段 #@startindex开始索引位置 #@endindex结束索引位置 len(@dat
在SQL中,拆分列为多行是一个常见的需求,尤其是在涉及到字符串拆分的情况下。如果想要按逗号将列拆分多行,我们可以使用SQL中的内置函数和表达式来实现。 首先,我们可以使用内置函数SUBSTRING_INDEX()来查找逗号的位置并将其分隔开。该函数将返回满足条件的最右边的字符串片段。例如,SUBSTRING_INDEX('John,Doe,Smith', ',', 1)将返回'John'。 接下来,我们可以使用UNION ALL操作符将多个SELECT语句组合起来,每个SELECT语句都会返回一个分隔的字符串。每个SELECT语句都需要运用一个不同的SUBSTRING_INDEX()函数来拆分不同的字符串。 最后,我们可以在最后的SELECT语句中使用ORDER BY语句来按行号对结果进行排序,以确保最终结果是按照正确的序列排列的。 综上所述,按逗号拆分列为多行需要用户熟练掌握SQL中的内置函数和操作符,并能够将它们灵活组合运用。如果掌握得当,该操作对于维护数据库的至关重要,可以提高查询效率,让数据更加准确和易于理解。