sql 话语查询字段,根据分隔符截取该字符串,循环输出
sql 语句查询字段,根据分隔符截取该字符串,循环输出
表TA中有一字段Fields是按$分割的字符串,
现在要求按$分割该字段 循环输出如下表
求解sql语句写法。
------解决方案--------------------
表TA中有一字段Fields是按$分割的字符串,
- HTML code
Fields 内饰精品$外饰精品$改装/配件$功能用品$美容/养护$香水/净化$车主用品$汽车电器$安全/应急$影音导航$
现在要求按$分割该字段 循环输出如下表
- HTML code
Fields 内饰精品 外饰精品 改装/配件 功能用品 美容/养护 香水/净化 车主用品 汽车电器 安全/应急 影音导航
求解sql语句写法。
------解决方案--------------------
- SQL code
--> 测试数据: [ta] if object_id('[ta]') is not null drop table [ta] create table [ta] (Fields varchar(100)) insert into [ta] select '内饰精品$外饰精品$改装/配件$功能用品$美容/养护$香水/净化$车主用品$汽车电器$安全/应急$影音导航$' go select substring(Fields,b.number,charindex('$',Fields,b.number+1)-b.number) X from ta a,master..spt_values b where b.type='p' and b.number between 1 and 100 and substring('$'+left(Fields,len(fields)-1),b.number,1)='$'
------解决方案--------------------
- SQL code
create table #test( id int identity(1,1), contents varchar(10) ) go declare @str varchar(8000) set @str='内饰精品$外饰精品$改装/配件$功能用品$美容/养护$香水/净化$车主用品$汽车电器$安全/应急$影音导航$' select @str='insert #test(contents) select '+''''+replace(@str,'$',''''+' union all select '+'''') select @str=left(@str,len(@str)-19) print @str exec(@str) go select * from #test /* id contents ----------- ---------- 1 内饰精品 2 外饰精品 3 改装/配件 4 功能用品 5 美容/养护 6 香水/净化 7 车主用品 8 汽车电器 9 安全/应急 10 影音导航 (10 行受影响) */