如何在表格中获取逗号分隔的字符串值 [英] How to get comma separated string value in a table

查看:90
本文介绍了如何在表格中获取逗号分隔的字符串值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,
我想将字符串值放入表中.该字符串包含逗号分隔的值


我写了这个查询,但是它不能正常工作.
最后一个值未正确获取


Hi there
I want to get the string values into a table.The string contains comma separated values


I wrote this query but it doesn''t work fine.
The last value is not getting properly


DECLARE	@AnswerId		AS	VARCHAR(50)
DECLARE	@AnswerId1		AS	VARCHAR(50)
DECLARE	@Length			AS	VARCHAR(50)
DECLARE	@LengthToTrim	AS	VARCHAR(50)

CREATE	TABLE	#AnswerTable(ansId	Int)
SELECT	@AnswerId	=	'2342,2342,234'

IF	(CHARINDEX(',',@AnswerId)	=	0)
BEGIN		
	INSERT	INTO	#AnswerTable
	VALUES			(@AnswerId)
END
ELSE
BEGIN
	WHILE	(@AnswerId	!=	'')
	BEGIN
		SET		@AnswerId1		=	SUBSTRING(@AnswerId,0,CHARINDEX(',',@AnswerId))
		SELECT	@LengthToTrim	=	LEN(@AnswerId1)
		SELECT	@AnswerId		=	RIGHT(@AnswerId,LEN(@AnswerId)-(@LengthToTrim + 1))
 
   			INSERT	INTO	#AnswerTable
			VALUES			(@AnswerId1)
		
		IF	@AnswerId	=	''	 
 			BREAK
		ELSE
  			CONTINUE
	END
END
SELECT	ansId
FROM	#AnswerTable

DROP		
TABLE	#AnswerTable




在此先感谢




Thanks in advance

推荐答案

这是什么?

what about this?

DECLARE @InputString NVARCHAR(MAX)
DECLARE @Delimiter NVARCHAR(40)
DECLARE @Pos INT
DECLARE @NextPos INT
DECLARE @NextString NVARCHAR(40)

SET @InputString = ''hello,its,a,beautiful,day''
SET @Delimiter = '',''
SET @Pos = charindex(@Delimiter,@InputString)

SET @InputString = @InputString + @Delimiter

CREATE TABLE #Results(Tokens NVARCHAR(MAX))

WHILE (@pos <> 0)
BEGIN
	SET @NextString = substring(@InputString,1,@Pos - 1)
		
	INSERT INTO #Results VALUES (@NextString)
	
	SET @InputString = substring(@InputString,@pos+1,len(@InputString))
	SET @pos = charindex(@Delimiter,@InputString)
END

SELECT * FROM #Results

DROP TABLE #Results


这篇关于如何在表格中获取逗号分隔的字符串值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆