sql >> Databáze >  >> RDS >> Oracle

Předejte čárkou oddělené číslo do klauzule IN v uložené proceduře

Konečný výsledek toho, co děláte, je tento:

select * from tableName where LOCATION_ID IN ('1,2,3');

A co potřebujete, je toto:

select * from tableName where LOCATION_ID IN (1,2,3);

Můžete tedy použít toto:

select * from tableName where LOCATION_ID in (
    select regexp_substr(P_LOCATIONS,'[^,]+{1}',1,level)
    from dual connect by level <= length(regexp_replace(P_LOCATIONS,'[^,]*')) + 1
);



  1. ukládání více než 255 znaků v PostgreSQL DB na heroku

  2. při vkládání více řádků do sql dochází k chybě

  3. Oracle SQL – Jak dynamicky získat zřetelný počet pro každý sloupec?

  4. Zkombinujte dva MYSQL SELECT dotazy