oracle怎麼將逗號拼接的字符串傳給 in
时间: 2024-09-06 07:03:59 浏览: 47
在Oracle中,如果你想要将包含逗号分隔值(CSV)的字符串作为IN条件传递给`IN`关键字,你需要使用`XMLTABLE`函数或者动态SQL。这里有两个常见的方法:
1. **XMLTABLE** 方法:
```sql
SELECT * FROM your_table
WHERE column_name IN (
XMLTABLE(
'STRING_TO_JOIN',
'/value/text()[not(position() = last())]',
TYPE VARCHAR2(255) PATH '.'
)
);
```
这里`STRING_TO_JOIN`是你存储逗号分隔值的列,`column_name`是你查询的列。
2. **动态SQL** 方法 (假设你的字符串在变量@str):
```sql
DECLARE
str VARCHAR2(4000);
values_str VARCHAR2(4000);
BEGIN
str := 'STRING_TO_JOIN';
values_str := REPLACE(str, ',', ',','LISTagg');
EXECUTE IMMEDIATE '
SELECT * FROM your_table
WHERE column_name IN (' || values_str || ')
';
END;
```
`LISTagg`函数用于将逗号分隔成单个字符串,适合于动态创建查询。
阅读全文
相关推荐
















