Sunday, September 23, 2012

Search using multiple values in single column


CREATE PROCEDURE dbo.Search
                (        @Tablename VARCHAR(50),
                         @Columname VARCHAR(50),
                         @valuestables VARCHAR(4000) )

AS
BEGIN     
        DECLARE @SQL VARCHAR(1000);
        DECLARE @where VARCHAR(8000);   
        DECLARE @var INT,@name VARCHAR(50);               
        DECLARE @SQL1 VARCHAR(1000);
        SET @SQL1='SELECT * FROM'+' '+@Tablename +' WHERE 1=1 '
        SET @SQL=@SQL1
                                WHILE CHARINDEX(',',@valuestables,1)<>0
                                BEGIN                               
                                SET @var=CHARINDEX(',',@valuestables,1)
                                SET @name=SUBSTRING(@valuestables,1,@var-1)
                                SET @valuestables=SUBSTRING(@valuestables,@var+1,LEN(@valuestables))
                                SET @SQL = @SQL + ' AND ' + @Columname + ' LIKE ''%'+@name +'%'''+ '' +' UNION ' +@sql1
                                END
                                SET @SQL=@SQL + ' AND ' + @Columname + ' LIKE ''%'+@valuestables +'%'+ ''''
                      
      
 EXEC ( @SQL)
      
END
GO

No comments: