How to Concat String in SQL WHERE clause How to Concat String in SQL WHERE clause sql-server sql-server

How to Concat String in SQL WHERE clause


very easy!! in mysql use CONCAT() function:

SELECT * FROM tbl_person WHERE CONCAT(first_name,' ',last_name) = 'Walter White';

but this does not work in mysql:

SELECT * FROM tbl_person WHERE first_name+' '+last_name = 'Walter White';


Try this one -

DECLARE        @str NVARCHAR(MAX)     , @str1 NVARCHAR (MAX);SELECT        @str = ' AND c.BondSales_Confirmed != -1'     , @str1 = ' AND c.BondSales_IssueType = ''REGULAR''';DECLARE @SQL NVARCHAR(MAX)SELECT @SQL = 'SELECT * FROM t_BondSales WHERE BondSales_cType != ''Institute'''     + @str      + @str1PRINT @SQLEXEC sys.sp_executesql @SQL


Passing column names along with values is subject to SQL Injection. Make sure to read this post www.sommarskog.se/dynamic_sql.html

So I would suggest you to change the code like this

declare @BondSales_Confirmed intdeclare @BondSales_IssueType varchar(100)SELECT * From t_BondSales Where (BondSales_cType <> 'Institute')AND (c.BondSales_Confirmed <> @BondSales_Confirmed  or @BondSales_Confirmed is null)AND (c.BondSales_IssueType = @BondSales_IssueType or @BondSales_IssueType is null)

Just pass null value if you do not want to apply a condition to the columns BondSales_Confirmed and BondSales_IssueType