SQL字符串的拼接.

http://topic.csdn.net/u/20091031/21/948d5e93-8c60-4708-a9ba-940f65486669.html?36878

if OBJECT_ID('[order]') is not null
 drop table [order]
go
create table [order](order_uid int,order_no nvarchar(20),car_no  nvarchar(20)) 
go
if OBJECT_ID('CNTR') is not null
 drop table CNTR
go
create table CNTR(cntr_uid int,cntr_no nvarchar(20),order_uid int)
go
insert into [order] values(1,'HKSZ0910230001 ','aaa')
insert into [order] values(2,'HKSZ0910230002 ','aaa')
insert into [order] values(3,'HKSZ0910230003 ','aaa')

insert into CNTR values(1,'CNTRNO1',1)
insert into CNTR values(2,'CNTRNO2',1)
insert into CNTR values(3,'CNTRNO1',2)
insert into CNTR values(4,'CNTRNO1',2)
insert into CNTR values(5,'CNTRNO2',3)

select order_no,cntr_no
from [order] o inner join CNTR R on O.order_uid=R.order_uid
--where o.order_no= '9999' --订单号
---sql2005才能这样写
Select order_no,
cntr_no=isnull(stuff((select ','+rtrim(cntr_no) from CNTR where [order].order_uid=CNTR.order_uid for XML path('')),1,1,''),'')
from [order]

/*
order_no             cntr_no
-------------------- --------------------
HKSZ0910230001       CNTRNO1
HKSZ0910230001       CNTRNO2
HKSZ0910230002       CNTRNO1
HKSZ0910230002       CNTRNO1
HKSZ0910230003       CNTRNO2

(5 行受影响)

order_no             cntr_no
-------------------- ------------------
HKSZ0910230001       CNTRNO1,CNTRNO2
HKSZ0910230002       CNTRNO1,CNTRNO1
HKSZ0910230003       CNTRNO2
*/
go
---sql2000的话要用函数
if OBJECT_ID('dbo.getStr') is not null
 drop function dbo.getStr
go
create function dbo.getStr(@order_uid int)
 returns nvarchar(200)
as
begin
 declare @str as nvarchar(200)
 select @str=isnull(@str,'')+cntr_no from CNTR where order_uid=@order_uid
 if @str <> ''
  select @str=right(@str,len(@str)-1)
 return @str
end
go

Select order_no,car_no=dbo.getStr(order_uid) from [order]
/*order_no             car_no
-------------------- ---------------
HKSZ0910230001       NTRNO1CNTRNO2
HKSZ0910230002       NTRNO1CNTRNO1
HKSZ0910230003       NTRNO2

(3 行受影响)*/

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

bancxc

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值