首页 新闻 搜索 专区 学院

SQL 实现字符串

0
[已解决问题] 解决于 2010-07-22 18:35

表A: 字段_id,_name

其中_name 的值是有规律的  如: 张[aaa];李[bbb];王[ccc]

实现效果如下:

张</br>[aaa]

李</br>[bbb]

王</br>[ccc]

like%'远远'%的主页 like%'远远'% | 小虾三级 | 园豆:635
提问于:2010-07-19 17:10
< >
分享
最佳答案
0

最简单的方式:select replace(name,'[','</br>[') as name from xx

dege301 | 老鸟四级 |园豆:2825 | 2010-07-19 21:18
其他回答(2)
0

你前台实现这样的效果?

把数据读到一个数组或列表里,如:string[] values = "字段值".Split(';');

然后遍历,给每个项中的第二个字符追加<br />。。。

Astar | 园豆:40805 (高人七级) | 2010-07-19 17:16
0

假如只有一条记录:


--测试数据
use testdb2
go
IF OBJECT_ID('[mytbl]') IS NOT NULL
DROP TABLE [mytbl]
GO
CREATE TABLE [mytbl] ([ID] int identity,[Name] [nvarchar](30))
INSERT INTO [mytbl]
SELECT '张[aaa];李[bbb];王[ccc]'

select * from [mytbl]
/*ID Name
1 张[aaa];李[bbb];王[ccc]
(1 row(s) affected)
*/

Declare @MyVars table (tid int identity,tName nvarchar(30))
declare @pos int
set @pos=-1
declare @name nvarchar(max)=(select top 1 [name] from mytbl)

set @pos=CHARINDEX(';',@name)
while(@pos>0)
begin
declare @tempname nvarchar(20)=SUBSTRING(@name,1,@pos)
insert into @MyVars select replace(@tempname,'[','<br/>[')
print replace(@tempname,'[','<br/>[')
set @name=SUBSTRING(@name,@pos+1,LEN(@name))
set @pos=CHARINDEX(';',@name)
end
update @MyVars set tName=REPLACE(tname,';','')
select tName from @MyVars union all
select replace(@name,'[','<br/>[')

/*
tName
张<br/>[aaa]
李<br/>[bbb]
王<br/>[ccc]
*/

 

邀月 | 园豆:25375 (高人七级) | 2010-07-19 20:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册