使用 PL/SQL 中的 where 条件连接两个表和 select 记录
Joining two tables and select records with where condition in PL/SQL
我是 PL/SQL 的新手,我需要加入两个 table 并从在 bookid 上加入的订单和书籍 table 获取过去 24 小时订单的数据。以下是我尝试以下解决方案的方法,这是正确的编写方法吗?请帮忙谢谢
CREATE PROCEDURE test.books@state NVARCHAR(20)
AS
BEGIN
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b ON a.bookid= b.bookid
where b.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.author="JOHN"
END
您需要 return 一个引用游标来执行此操作。您的应用程序必须将此引用光标选为参数。
SYSDATE 是 Oracle 中的当前日期(包括时间)。 SYSDATE - 1 是 24 小时前。
字符串是单引号。
CREATE OR REPLACE
PROCEDURE Books(
p_recordset OUT SYS_REFCURSOR) AS
BEGIN
OPEN p_recordset FOR
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b ON a.bookid= b.bookid
where b.date > SYSDATE-1 and a.author='JOHN' ;
END Books
我是 PL/SQL 的新手,我需要加入两个 table 并从在 bookid 上加入的订单和书籍 table 获取过去 24 小时订单的数据。以下是我尝试以下解决方案的方法,这是正确的编写方法吗?请帮忙谢谢
CREATE PROCEDURE test.books@state NVARCHAR(20)
AS
BEGIN
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b ON a.bookid= b.bookid
where b.date > DATE_SUB(CURDATE(), INTERVAL 1 DAY) and a.author="JOHN"
END
您需要 return 一个引用游标来执行此操作。您的应用程序必须将此引用光标选为参数。
SYSDATE 是 Oracle 中的当前日期(包括时间)。 SYSDATE - 1 是 24 小时前。
字符串是单引号。
CREATE OR REPLACE
PROCEDURE Books(
p_recordset OUT SYS_REFCURSOR) AS
BEGIN
OPEN p_recordset FOR
SELECT
b.orderid,a.bookid,b.date
FROM books a
INNER JOIN orders AS b ON a.bookid= b.bookid
where b.date > SYSDATE-1 and a.author='JOHN' ;
END Books