表A: 字段_id,_name
其中_name 的值是有规律的 如: 张[aaa];李[bbb];王[ccc]
实现效果如下:
张</br>[aaa]
李</br>[bbb]
王</br>[ccc]
最简单的方式:select replace(name,'[','</br>[') as name from xx
你前台实现这样的效果?
把数据读到一个数组或列表里,如:string[] values = "字段值".Split(';');
然后遍历,给每个项中的第二个字符追加<br />。。。
假如只有一条记录:
--测试数据
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]
*/