Как запросить несколько значений одного и того же coulmn в sqlserver 2008? - PullRequest
0 голосов
/ 31 марта 2012

МОЙ стол вроде этого:

id  Tag                platform
1  #class1,#class2      CS
2  #class1              PS
3  #class2              CS

если я передаю "# class1" в качестве параметра SP, получая только одну запись, которая является 2-й записью. Но нужно 1-ю и 2-ю записи, потому что # class1 содержится в обеих 1,2 строках. Пожалуйста, скажите мне, как написать это .Я сейчас использую оператор IN. Используя только запись.

МОЙ СП:

ALTER PROCEDURE [dbo].[usp_Get]-- 1,"'#class1,#class2'"
@Appid INT,
@TagList NVARCHAR (MAX)
AS

BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
 SET NOCOUNT ON;
 SELECT @TagList = '%' + RTRIM(LTRIM(@TagList)) + '%';
  declare @tags varchar(MAX)
    set @tags = @TagList
    create table #t (tag varchar(MAX))
    set @tags = 'insert #t select ' + replace(@tags, ',', ' union select ')
    exec(@tags)
Select 
    id FROM dbo.List WHERE ((appid=@Appid)) AND ((Tags LIKE(select tag from #t)
END

Как изменить пожалуйста скажите мне ...

Заранее спасибо ..

1 Ответ

1 голос
/ 31 марта 2012

Одним из решений будет использование оператора LIKE в вашей хранимой процедуре:

CREATE PROCEDURE FindTag @TagName char(50)
AS
    SELECT @TagName = '%' + TRIM(@TagName) + '%';

    SELECT Tag 
    FROM MyTable 
    WHERE Tag LIKE @TagName;

GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...