sql 解释带分割符的字符串

 

create table A(AID int, AName varchar(10))

insert into a values(1 , '苹果') 

create table b(BID int, BName varchar(10) , AID int)

insert into b values(1 , '河南' , 1 )

insert into b values(2 , '山东' , 1 )

create table c(CID int, CName varchar(10) , AID int, BIDS varchar(10))

insert into c values(1 , '果汁' , 1 , '3,2') 

insert into c values(2 , '果醋' , 1 , '1')

go

 

SELECT 

    A.CName,

    B.AName,

    C.BName

FROM (

    SELECT

 

        A.CID,

        A.CName,

        A.AID,

        SUBSTRING(A.BIDS,B.number,CHARINDEX(',',A.BIDS+',',B.number)-B.number) AS BID

    FROM C AS A

        JOIN master..spt_values AS B

            ON B.type='p' AND B.number >0

                 AND SUBSTRING(','+A.BIDS,B.number,1)=','

) AS A

    JOIN A AS B

       ON A.AID=B.AID

    JOIN B AS C

       ON A.BID=C.BID

 

drop table a , b , c 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值