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中的内置函数和操作符,并能够将它们灵活组合运用。如果掌握得当,该操作对于维护数据库的至关重要,可以提高查询效率,让数据更加准确和易于理解。