Sql server 2008 如何删除筛选器并将唯一值存储在另一个表中

Sql server 2008 如何删除筛选器并将唯一值存储在另一个表中,sql-server-2008,Sql Server 2008,我的表中有一个名为course的列,它的行是lyk row1 : course:1|course:2|course:3 row2 : Course:2|course:4|NUll 现在我必须消除行中的过滤器“|”,并将不同的值存储在另一个表中。。我该怎么做。。?? 使用SP 我将输出列排除在外,如下所示: Course:1 Course:2 Course:3 Course:4 提前感谢试试这个 create table table1(A varchar(50),B varchar(50),C

我的表中有一个名为course的列,它的行是lyk

row1 : course:1|course:2|course:3
row2 : Course:2|course:4|NUll
现在我必须消除行中的过滤器“|”,并将不同的值存储在另一个表中。。我该怎么做。。?? 使用SP

我将输出列排除在外,如下所示:

Course:1
Course:2
Course:3
Course:4
提前感谢

试试这个

create table table1(A varchar(50),B varchar(50),C varchar(50));

insert into table1 values('course:1','course:2','course:3');
insert into table1 values('course:2','course:4',null);
SQL查询

Select Distinct value
From table1
unpivot
(
  value
  For Cource in (A, B, C)
) U;

输出:



试试这个函数来分割行值,看看这个

如果您的数据如下所示:

create table table1 (course varchar(1000))
insert into table1 ( course) values ('course:1|course:2|course:3'),('course:2|course:4|NULL')
此查询使用函数拆分字符串,您可以将此代码放入存储过程中

select ROW_NUMBER()over(order by course)as Number,* 
into #temp
from table1

declare @flag int, @count int
select @count=COUNT(''), @flag=1 from table1

create table #result(items varchar(100))
while @flag<=@count
begin
    declare @row varchar(1000)
    select @row=course from #temp where Number=@flag
    insert into #result
    select Items from [dbo].[Split](@row,'|')
    where Items<>'NULL'
    set @flag=@flag+1
end

select distinct * from #result

drop table #result
drop table #temp
select ROW_NUMBER()over(order by course)as Number,* 
into #temp
from table1

declare @flag int, @count int
select @count=COUNT(''), @flag=1 from table1

create table #result(items varchar(100))
while @flag<=@count
begin
    declare @row varchar(1000)
    select @row=course from #temp where Number=@flag
    insert into #result
    select Items from [dbo].[Split](@row,'|')
    where Items<>'NULL'
    set @flag=@flag+1
end

select distinct * from #result

drop table #result
drop table #temp
+---------+
|Items    |
+---------+
|course:1 |
|course:2 |
|course:3 |
|course:4 |
+---------+