查询语句中调用函数的问题,怎么解决效率问题。

主表 保存 服装信息

ID ,Name

1  , T-Shirt

2,  西服

3,  衬衫

字表,保存不同服装的型号

ID,PID,ProductNo

1,1,X

2,1,L

3,1,S

4,2,XXL

5,2,XXXL

6,2,M

基本表结构如上,现在想得到一个结果

ID ,Name ,ProductNo

1,T-shirt,x-l-s  (x-l-s这个是通过一个函数循环得到的)

语句基本是

  select id,name,dbo.getProductNo(ID) from Product


这样的方法,但是Product表的商品很多,通过这种方式获取的话,很慢很慢,有什么好办法可以加快商品的读取速度吗?

倚天杖
浏览 473回答 3
3回答

红颜莎娜

用xml path来取x-l-s吧 或者主表可以做适当冗余。 select B.PID,LEFT(pns,LEN(pns)-1) as pns FROM ( SELECT PID, (SELECT ProductNo+',' FROM 表2 WHERE PID=A.PID for xml path('')) as pns from 表2 A group by PID ) B
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

SQL Server