gpt4 book ai didi

sql - Oracle 查询连接问题

转载 作者:行者123 更新时间:2023-12-05 00:21:16 25 4
gpt4 key购买 nike

我有一个 Oracle 表,如下所示

Orders
---------
ORDERID
DESCRIPTION
TOTALVALUE
ORDERSTATUS

我有下面提到的查询

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)

上面提到的一些orderIDs不在订单表中。尽管如此,我还是希望 orderID 出现在结果集中,状态为 null。

感谢您的帮助。

最佳答案

这个怎么样:

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;

如果订单 ID 不是固定的而是一个参数,您也可以让它工作。但解决方案取决于您是从 PL/SQL 还是从其他编程语言(如 C#、Java、PHP 等)调用语句。

更新:SYS.ODCINUMBERLIST 只是一种已在 Oracle 中定义的表类型。您可以使用自己的类型:

CREATE TYPE NUMBER_TABLE_T AS TABLE OF NUMBER;

关于sql - Oracle 查询连接问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4063576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com