sql - 在 SQL WHERE CLAUSE 的变量中使用一串带引号的值

标签 sql sql-server variables where quotes

答案让我望而却步……也许是因为这是不可能的……

有效的例子...

SELECT * FROM TABLEA WHERE FIELD1 IN ('aaa','bbb','ccc')

不起作用的例子......

尝试利用变量,以便我可以在一串语句中定义一次值
DECLARE @ListValues VARCHAR(50)

SET @ListValues = '''aaa'',''bbb'',''ccc'''

SELECT * FROM TABLEA WHERE FIELD1 IN (@ListValues)

这显然只是等式的一小部分,还有其他原因......

我无法利用值的表并将其更改为真正的子查询

我能找到的最接近的问题是这个……但显然没有涵盖我的要求……
Storing single quotes in varchar variable SQL Server 2008

提前致谢。

最佳答案

您可以使用动态 SQL 执行此操作:

DECLARE @ListValues VARCHAR(MAX)
       ,@SQL VARCHAR(MAX)
SELECT @ListValues = '''aaa'',''bbb'',''ccc'''
      ,@SQL = 'SELECT * FROM TABLEA WHERE FIELD1 IN ('+@ListValues+')'
EXEC (@SQL)

关于sql - 在 SQL WHERE CLAUSE 的变量中使用一串带引号的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770181/

相关文章:

sql-server - SQL Server 存储过程返回代码奇怪

Bash - 读取变量和直接分配变量有什么区别?

Php 阻塞变量声明(w/psql)

sql - Postgres windows 函数与聚合组依据

sql - 返回带有子项 postgresql 的 JSON

sql - Oracle 触发器失败 -ORA-04098

java - 如何将值从sql数据库设置到java文本框?

sql - 您如何使用 sp_send_dbmail 存储过程和 SQL 将查询结果作为 csv 发送电子邮件?

sql - SQL Server 上的预留空间过多

c++ - char *name 和 char* name 有什么区别?