当前位置:  开发笔记 > 数据库 > 正文

根据输入参数排序SQL结果

如何解决《根据输入参数排序SQL结果》经验,为你挑选了1个好方法。

结合fn_split函数,我将根据逗号分隔值返回表中的结果列表.

存储过程T-SQL如下:

SELECT ProductCode, ProductDesc, ImageAsset, PriceEuros, PriceGBP, PriceDollars,  
replace([FileName],' ','\_') as [filename],  
ID as FileID, weight  
from Products  
LEFT OUTER JOIN Assets on Assets.ID = Products.ImageAsset  
where ProductCode COLLATE DATABASE_DEFAULT IN  
(select [value] from fn\_split(@txt,','))  
and showOnWeb = 1

我传入以下的@txt参数(作为示例):

ABC001,ABC009,ABC098,ABC877,ABC723

这一切都运行正常,但结果不会以任何特定的顺序返回 - 我需要在'SAME ORDER'中返回的产品作为输入参数.

不幸的是,这是一个带有内置架构的实时网站,所以我无法改变任何内容(但我希望我能) - 否则我会让它变得更加明智.



1> Macros..:

如果在@txt参数上传递的所有引用都是唯一的,则可以使用CharIndex在参数中找到它们的位置,例如

order by charindex(ProductCode, @txt)

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有