如何在ID数组中选择ID?

时间:2011-11-03 21:34:23

标签: oracle select

我有一个程序

PROCEDURE Pro
(
  P_IDs VARCHAR2
);

我想从一个表中选择ID匹配P_IDs中发送的ID之一

SELECT * FROM Tbl WHERE ID IN ( P_IDs )

P_ID看起来像

'1,2,3,4,5'

我有什么选择?我想我曾经看过一种方法,不使用自定义函数来分割字符串,我想要一些简单易用的东西。

1 个答案:

答案 0 :(得分:2)

我在这里找到了它:

我需要将其转换为XMLTable:

SELECT TO_NUMBER(xt.column_value) FROM XMLTABLE( '1,2,3,4' ) xt

使用示例:

SELECT * FROM Questions q
WHERE q.ID IN ( SELECT TO_NUMBER(xt.column_value) FROM XMLTABLE( '1,2,3,4' ) xt )