aca*_*dia 2 sql oracle oracle10g
我有一个Oracle表,如下所示
Orders
---------
ORDERID
DESCRIPTION
TOTALVALUE
ORDERSTATUS
Run Code Online (Sandbox Code Playgroud)
我有下面提到的查询
select ORDERID,ORDERSTATUS
FROM ORDERS
WHERE ORDERID IN( 1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1020,
1030,104,1040,1090,789)
Run Code Online (Sandbox Code Playgroud)
一些orderIDs上面提到的不是订单表.尽管我想要的orderIDs出现在同为空状态的结果集.
感谢您的帮助.
那这个呢:
SELECT T.COLUMN_VALUE AS ORDERID, ORD.ORDERSTATUS
FROM TABLE(SYS.ODCINUMBERLIST(
1000,1001,1002,1003,1004,1005,1006,1007,1008,1009,1010,1020,1030,104,1040,1090,789
)) T
LEFT JOIN ORDERS ORD ON ORD.ORDERID = T.COLUMN_VALUE;
Run Code Online (Sandbox Code Playgroud)
如果订单ID不是固定的,而是参数,您也可以使它工作.但解决方案取决于您是从PL/SQL还是从其他编程语言(如C#,Java,PHP等)调用语句.
更新: SYS.ODCINUMBERLIST只是已在Oracle中定义的表类型.你可以使用自己的类型:
CREATE TYPE NUMBER_TABLE_T AS TABLE OF NUMBER;
Run Code Online (Sandbox Code Playgroud)