Try it,
DECLARE @SQL1 VARCHAR(max) = ''
,@Name VARCHAR(100) = 'test'
SET @SQL1 = 'INSERT INTO #TEMPSelect
SELECT DISTINCT tbAgent.Agent
,CASE
WHEN coalesce(tbsystemuser.MiddleName, '''') = ''''
THEN tbsystemuser.FirstName + '' '' + tbsystemuser.LastName
ELSE tbsystemuser.FirstName + '' '' + tbsysten.MiddleName + '' '' + tbsystemuser.LastName
END AS FULLNAME
,tbsystemuser.EmailAddress
,tbagent.AgentCode
,tbBroker.businessname
FROM tbSystemUser
INNER JOIN dbo.tbAgent ON tbSystemUser.SystemUser = tbAgent.SystemUser
WHERE (
tbagent.DeletionIndicator = 0
AND tbsystemuser.SystemRoleType != 10
)'
IF LEN(@Name) > 1
SET @SQL1 = @SQL1 + 'and FullName LIKE ''%' + @Name + '%'''
EXEC (@SQL1)
As Arulkumar said, you must specify an alias for the case argument. In addition to this, the use of% in a similar statement
source
share