传递一个TAG参数,值:Tag="电脑,CPU,主板,硬盘"
(
@Tag NVARCHAR(4000)
--@Tag="电脑,CPU,主板,硬盘"
)
AS
INSERT INTO
Tags(Tag)
VALUES(@Tag)怎么把@Tag的值截成:'电脑','CPU','主板','硬盘',逐条插入?
(
@Tag NVARCHAR(4000)
--@Tag="电脑,CPU,主板,硬盘"
)
AS
INSERT INTO
Tags(Tag)
VALUES(@Tag)怎么把@Tag的值截成:'电脑','CPU','主板','硬盘',逐条插入?
set @Tag='电脑,CPU,主板,硬盘'
set @sql='select '''+replace(@Tag,',',''' union all select ''')+''''--创建测试:#Tags
create table #Tags(Tag varchar(20))
exec ('insert #Tags '+@sql)select * from #Tags/*
Tag
--------------------
电脑
CPU
主板
硬盘
*/--删除测试
drop table #Tags
REPLACE是替换的功能
也就是吧--@Tag="电脑,CPU,主板,硬盘" 字段里的‘,’替换掉了
那麻烦“昨夜小楼”告知下SELECT这后面的'''和,后面的''''是什么意思好么
谢谢~~
set @Tag='电脑,CPU,主板,硬盘'set @sql='select '+replace(@Tag,',',' union all select ')
print @sqlset @sql='select '''+replace(@Tag,',',''' union all select ''')+''''
print @sql/*
select 电脑 union all select CPU union all select 主板 union all select 硬盘
select '电脑' union all select 'CPU' union all select '主板' union all select '硬盘'
*/