将oracle中逗号分隔的字符串转换为in子句的格式

时间:2014-06-02 13:18:40

标签: sql oracle

我正在努力实现''               来自' 2611,2616,3306'

select REPLACE( '2611,2616,3306', ',', ''',''' ) from dual;

上面给出的是2611' 2616'' 3306的输出。 任何人都可以告诉你如何得到第一个和最后一个逗号

2 个答案:

答案 0 :(得分:1)

你可以将它们连接到正面和背面:

select '''' || REPLACE( '2611,2616,3306', ',', ''',''' ) || '''' from dual;

这将导致'2611','2616','3306'。

答案 1 :(得分:0)

虽然您可以使用动态SQL,但您无法在简单查询中执行此操作。您可以使用以下内容在列表中搜索值:

where ','||col||',' like '%,'||YOURLISTHERE||'%,'

添加额外的逗号,10100不匹配。

不幸的是,此版本的查询无法利用索引,因此它通常会比in版本慢得多。