SQL拆分字符串问题!

Small__Wolf 2008-11-14 03:18:24
表A
ID TYPE
1 1|6
2 1|45
3 1|892

如何把提取成下面的这种格式

ID TYPE
1 6
2 45
3 892
...全文
117 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lp370480 2008-11-14
  • 打赏
  • 举报
回复
SELECT RIGHT(TYPE,LEN(TYPE)-CHARINDEX('|',TYPE)) FROM @T

•RIGHT()
RIGHT() 函数返回部分字符串,其语法如下:
RIGHT (<character_expression>, <integer_expression>)
RIGHT() 函数返回的子串是从字符串右边第integer_expression 个字符起到最后一个字符的部分。若integer_expression 为负值,则返回NULL 值。


•CHARINDEX()
CHARINDEX() 函数返回字符串中某个指定的子串出现的开始位置,其语法如下:
CHARINDEX (<’substring_expression’>, <expression>)
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。

授人以鱼不如授人以渔!
ljhcy99 2008-11-14
  • 打赏
  • 举报
回复

select ID, type =
case when CHARINDEX('|',type) > 0 then substring(type,CHARINDEX('|',type)+1,len(type) - CHARINDEX('|',type))
else type end

from
表A
水族杰纶 2008-11-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Small__Wolf 的回复:]
忘记说了里面还存在这种格式
表A
ID TYPE
1 1|6
2 1|45
3 1|892
4 -1
[/Quote]
不影響~~~
Small__Wolf 2008-11-14
  • 打赏
  • 举报
回复
忘记说了里面还存在这种格式
表A
ID TYPE
1 1|6
2 1|45
3 1|892
4 -1
水族杰纶 2008-11-14
  • 打赏
  • 举报
回复
DECLARE @T TABLE(ID INT,    TYPE VARCHAR(10)) 
INSERT @T SELECT 1, '1|6'
INSERT @T SELECT 2, '1|45'
INSERT @T SELECT 3, '1|892'
SELECT RIGHT(TYPE,LEN(TYPE)-CHARINDEX('|',TYPE)) FROM @T
/*
----------
6
45
892
*/
liangCK 2008-11-14
  • 打赏
  • 举报
回复
---------------------------------
-- Author: liangCK 小梁
-- Date : 2008-11-14 15:20:46
---------------------------------

--> 生成测试数据: @T
DECLARE @T TABLE (ID VARCHAR(2),TYPE VARCHAR(5))
INSERT INTO @T
SELECT '1','1|6' UNION ALL
SELECT '2','1|45' UNION ALL
SELECT '3','1|892'

--SQL查询如下:

SELECT ID,
RIGHT(type,CHARINDEX('|',REVERSE(type))-1) AS type
FROM @T


/*
ID type
---- -----
1 6
2 45
3 892

(3 行受影响)
*/
liangCK 2008-11-14
  • 打赏
  • 举报
回复
SELECT ID,
RIGHT(type,CHARINDEX('|',REVERSE(type))-1) AS type
FROM tb
Small__Wolf 2008-11-14
  • 打赏
  • 举报
回复
是的,只有一个|
liangCK 2008-11-14
  • 打赏
  • 举报
回复
取|后面的数据?..
type会有多少个|?

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧