Click here to Skip to main content
15,908,111 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
SQL
DECLARE @empid int

DECLARE @name varchar(100)='sri'
DECLARE @panno varchar(100)='12ertyumf'


                DECLARE  @location VARCHAR(100)='UK'

                 DECLARE  @SQLQuery VARCHAR(100)='SELECT  EMPId  FROM Employees WHERE'

               if(@name is null and @panno is null and @location is null)
              BEGIN
              SELECT -1
               return
              END
               if(@name is not null)

               BEGIN

                SET  @SQLQuery=@SQLQuery+' Name='''+@name+''''
                END

                if(@PanNo is not null)
                BEGIN
                 SET  @SQLQuery=@SQLQuery+' or PanNo='''+@panno+''''
                 END

                 if(@location is not null)
                 BEGIN

                  SET  @SQLQuery=@SQLQuery+' or location='''+@location+''''

                END
                EXECUTE(@SQLQuery)
Posted
Updated 12-Feb-14 18:08pm
v2

SQL
DECLARE @empid int

DECLARE @name varchar(100)= NULL
DECLARE @panno varchar(100)=NULL


                DECLARE  @location VARCHAR(100)='UK'

                 DECLARE  @SQLQuery VARCHAR(500)='SELECT  EMPId  FROM Employees '
                 DEClARE @WhereClause  VARCHAR(500) = ''

               if(@name is null and @panno is null and @location is null)
              BEGIN
              SELECT -1
               return
              END
               if(@name is not null)

               BEGIN

                SET  @WhereClause=@WhereClause+' Name='''+@name+''''
                END

                if(@PanNo is not null)
                BEGIN
                    IF @WhereClause IS NULL OR @WhereClause = ''
                    BEGIN
                        SET  @WhereClause=' PanNo='''+@panno+''''
                    END
                    ELSE
                    BEGIN
                        SET  @WhereClause=@WhereClause+' or PanNo='''+@panno+''''
                    END
                 END

                 if(@location is not null)
                 BEGIN

                    IF @WhereClause IS NULL OR @WhereClause = ''
                    BEGIN
                        SET  @WhereClause='  location='''+@location+''''
                    END
                    ELSE
                    BEGIN
                        SET  @WhereClause=@WhereClause+' or location='''+@location+''''
                    END

                END

                IF @WhereClause IS NOT NULL AND @WhereClause <> ''
                BEGIN
                    SET @SQLQuery = @SQLQuery + ' WHERE ' + @WhereClause
                END


                EXECUTE(@SQLQuery)
 
Share this answer
 
Comments
srikanth492 13-Feb-14 1:19am    
i got this error
Conversion failed when converting the varchar value 'SELECT EMPId FROM Employees WHERE location='UK'' to data type int.

when iam give like this set @empid =(select(CONVERT(int,@SQLQuery)))
SQL
DECLARE @empid int

DECLARE @name varchar(100)= NULL
DECLARE @panno varchar(100)=NULL


                DECLARE  @location VARCHAR(100)='UK'

                 DECLARE  @SQLQuery nVARCHAR(500)=' SELECT  @empid = EMPId  FROM Employees '
                 DEClARE @WhereClause  VARCHAR(500) = ''

               if(@name is null and @panno is null and @location is null)
              BEGIN
              SELECT -1
               return
              END
               if(@name is not null)

               BEGIN

                SET  @WhereClause=@WhereClause+' Name='''+@name+''''
                END

                if(@PanNo is not null)
                BEGIN
                    IF @WhereClause IS NULL OR @WhereClause = ''
                    BEGIN
                        SET  @WhereClause=' PanNo='''+@panno+''''
                    END
                    ELSE
                    BEGIN
                        SET  @WhereClause=@WhereClause+' or PanNo='''+@panno+''''
                    END
                 END

                 if(@location is not null)
                 BEGIN

                    IF @WhereClause IS NULL OR @WhereClause = ''
                    BEGIN
                        SET  @WhereClause='  location='''+@location+''''
                    END
                    ELSE
                    BEGIN
                        SET  @WhereClause=@WhereClause+' or location='''+@location+''''
                    END

                END

                IF @WhereClause IS NOT NULL AND @WhereClause <> ''
                BEGIN
                    SET @SQLQuery = @SQLQuery + ' WHERE ' + @WhereClause
                END


               --EXECUTE(@SQLQuery)
               EXECUTE sp_executesql @SQLQuery ,N'@empid int OUTPUT',@empid      OUTPUT;

               select  @empid
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900