sql能否将数组转换成列 作为查询条件

oracle 环境,需要的效果基本是select xxx where 字段a in ('1','2','3') 这样的意思,in里的数组列表可能会比较长,于是想到了exists,但是exists不能直接用in的语法,请问有什么方法可以解决

如果使用纯SQL 实现,可以先用SQL 语句把 数组的行转成列,然后再用exists进行对比。

select *
from a
where exists (
select *

from 数组

行转列

where

)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-13
怎么不能用in?exists的where条件也一样可以用in的。
但数组要想直接弄成in语句是不可能的,你需要使用存储过程,动态生成SQL,或者通过你的客户端程序将SQL先以字符串的形式拼接好,再执行。
相似回答