How do I use a comma separated list of values as a filter in T-SQL?

后端 未结 10 1516
無奈伤痛
無奈伤痛 2021-02-09 14:03

I have a basic SQL query, starting with:

SELECT top 20 application_id, [name], location_id FROM apps

Now, I would like to finish it so that it

10条回答
  •  不知归路
    2021-02-09 14:38

    If @locid is a list eg "33, 234" etc, then no solution here will work. However, I guess these were posted before your update with this information.

    I assume that because you said this:

    @locid is the results given by the user, for example '33, 234'

    You can not expand the variable directly so that location_in IN (33, 234). You are actually asking for location_id = '33, 234', which will fail with a CAST conversion, because of datatype precedence.

    You have to parse the list first into a table form for use in a JOIN/EXISTS construct. There are several options and Erland covers them all here: Arrays and Lists in SQL Server 2005

提交回复
热议问题