请教如何取出这种字符串的值
请问怎么取出这种字符串的值啊
1~2~3
1我是这样取的
可是要取2这个值请问怎么办啊
------解决方案--------------------
DECLARE @tb TABLE
( id nvarchar(100));
DECLARE @qqImg varchar(50)
SET @qqImg='1~2~3'
WHILE(1=1)
BEGIN
IF CHARINDEX('~',@qqImg)=0 --原字符串中不存在分隔符
BEGIN
INSERT INTO @tb
SELECT @qqImg
BREAK;
END
DECLARE @Location int
SET @Location = CHARINDEX('~',@qqImg) --查找字符串中分隔符位置
INSERT INTO @tb
SELECT SUBSTRING(@qqImg, 1, @Location-1) --减一去掉分隔符
--将查找到的子字符串替换为空字符串
SET @qqImg=REPLACE(@qqImg, SUBSTRING(@qqImg, 1, @Location), '')
END
SELECT * FROM @tb
--不知道你是不是要这种效果,试试先
------解决方案--------------------
1~2~3
1我是这样取的
- SQL code
DECLARE @qqImg100 VARCHAR(200) IF(CHARINDEX('~',@qqImg)>0) SET @qqImg100=SUBSTRING(@qqImg,0,CHARINDEX('~',@qqImg))
可是要取2这个值请问怎么办啊
------解决方案--------------------
DECLARE @tb TABLE
( id nvarchar(100));
DECLARE @qqImg varchar(50)
SET @qqImg='1~2~3'
WHILE(1=1)
BEGIN
IF CHARINDEX('~',@qqImg)=0 --原字符串中不存在分隔符
BEGIN
INSERT INTO @tb
SELECT @qqImg
BREAK;
END
DECLARE @Location int
SET @Location = CHARINDEX('~',@qqImg) --查找字符串中分隔符位置
INSERT INTO @tb
SELECT SUBSTRING(@qqImg, 1, @Location-1) --减一去掉分隔符
--将查找到的子字符串替换为空字符串
SET @qqImg=REPLACE(@qqImg, SUBSTRING(@qqImg, 1, @Location), '')
END
SELECT * FROM @tb
--不知道你是不是要这种效果,试试先
------解决方案--------------------
- SQL code
declare @s varchar(10) set @s='4~5~6' select parsename(replace(@s,'~','.'),3) as 第一个位置, parsename(replace(@s,'~','.'),2) as 第二个位置, parsename(replace(@s,'~','.'),1) as 第三个位置 /* 第一个位置 第二个位置 第三个位置 -------------- ------------------- ------------------- 4 5 6 */