sql server 查询where拼接字符串
时间: 2023-08-24 07:07:09 浏览: 185
动态拼接sql语句工具类,拼接where后面语句
在 SQL Server 中,可以通过使用字符串拼接函数 `CONCAT` 或 `+`,将 WHERE 子句中的多个条件字符串连接起来。
示例代码:
```
DECLARE @query NVARCHAR(MAX)
SET @query = 'SELECT * FROM myTable WHERE 1=1'
IF @param1 IS NOT NULL
SET @query = CONCAT(@query, ' AND column1 = ''', @param1, '''')
IF @param2 IS NOT NULL
SET @query = CONCAT(@query, ' AND column2 = ''', @param2, '''')
-- 执行查询语句
EXEC sp_executesql @query
```
在上面的示例代码中,首先定义了一个字符串变量 `@query`,并将初始查询语句赋值给它。然后,使用 `IF` 语句检查每个条件是否为 `NULL`,如果条件不为 `NULL`,则使用 `CONCAT` 函数将条件字符串添加到 `@query` 变量中。最后,使用 `sp_executesql` 函数执行拼接后的查询语句。
需要注意的是,使用字符串拼接函数拼接 SQL 查询语句存在 SQL 注入的风险,因此必须对参数进行适当的验证和转义。可以使用内置函数 `QUOTENAME`、`REPLACE`、`CHAR` 等函数来转义特殊字符。
阅读全文