2012-03-31 37 views
0

我的表是這樣的:如何查詢sqlserver 2008中相同coulmn的多個值?

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

如果我通過「‘#class1的’」作爲參數傳遞給SP只得到一個記錄是第二record.But需要第一和第二記錄,因爲#1類包含兩個1 ,2 rows.Please告訴我如何寫這個。我現在使用IN語句。通過使用獲取唯一的記錄。

MY SP:

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 (([email protected])) AND ((Tags LIKE(select tag from #t) 
END 

如何修改請告訴我...提前

謝謝..

回答

1

一個解決辦法是在你的存儲過程LIKE操作使用方法:

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

    SELECT Tag 
    FROM MyTable 
    WHERE Tag LIKE @TagName; 

GO 
+0

如何在將字符串傳入SP中時將%%添加到字符串?截至目前爲止,我將字符串傳遞爲「'#class1,#class2'」如何在sqlserver中添加%字符串..... – user1237131 2012-03-31 03:09:48

+0

我已經使用存儲過程示例更新了我的答案。 – BluesRockAddict 2012-03-31 03:10:50

+0

獲取TRIM不是一個可識別的函數名稱錯誤.... – user1237131 2012-03-31 03:14:35

相關問題