如何在SQL WHERE子句中使用Concat String

Saq*_*eed 6 sql sql-server string-concatenation where-clause

我在RAW sql中声明了两个变量

DECLARE @str nvarchar(max), @str1 nvarchar (max);

SET @str = "  AND (c.BondSales_Confirmed <> -1)";

SET @str1 = "  AND (c.BondSales_IssueType = 'REGULAR')";
Run Code Online (Sandbox Code Playgroud)

我的SQL查询是:

SELECT * From t_BondSales Where (BondSales_cType <> 'Institute') " + str1 + str  "
Run Code Online (Sandbox Code Playgroud)

在这里我收到以下错误:

错误:SQL问题:"+ str1 + str"附近的语法不正确

可以任何人请帮助我使用正确的语法,如何在where子句中连接字符串?

Dev*_*art 10

试试这个 -

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 
     + @str1

PRINT @SQL
EXEC sys.sp_executesql @SQL
Run Code Online (Sandbox Code Playgroud)


小智 9

很容易!!在mysql中使用CONCAT()函数:

SELECT * FROM tbl_person WHERE CONCAT(first_name,' ',last_name) = 'Walter White';
Run Code Online (Sandbox Code Playgroud)

但这并没有在MySQL的工作:

SELECT * FROM tbl_person WHERE first_name+' '+last_name = 'Walter White';
Run Code Online (Sandbox Code Playgroud)

  • 问题是关于 MS SQL Server (2认同)