通过IN子句排序SQL Server结果

And*_*rew 8 sql database asp.net stored-procedures sql-server-2008

我有一个使用IN子句的存储过程.在我的ASP.NET应用程序中,我有一个多行文本框,它为存储过程提供值.我希望能够按照在文本框中输入的值进行排序.我在mySQL中找到了如何轻松地做到这一点(使用FIELD函数),但不是SQL Server等价物.

所以我的查询看起来像:

Select * from myTable where item in @item
Run Code Online (Sandbox Code Playgroud)

所以我会从我的应用程序传递值,如'113113','112112','114114'(以任意顺序).我想按列表订购结果.

CASE声明是否可行?我不知道文本框数据中有多少项目.

Mar*_*ith 5

你如何参数化该IN条款?

如你是SQL Server 2008上我会在传递表值参数有两列item,并sort_order和上加入代替.然后你可以添加ORDER BY sort_order到最后.

  • +1,或者如果是csv,则拆分为带有标识列的@table变量,您可以将其加入,然后按顺序排序 (2认同)