如何使用 SQL 中的替换变量来提示用户输入客户名称?

How to use substitution variable in SQL to prompt user to enter customer name?

问题如下:

确定特定客户购买了哪些书籍。使用客户名称而不是客户编号执行搜索。使用替换变量并输入 Jack Lucas 作为客户名称。如果他购买了同一本书的多份副本,则取消重复结果。


基本上我有 4 个表要加入,包括 Customers、Orders、Orderitems 和 Book。我想提示用户输入 Jack Lucas。并显示Jack Lucas购买的书名结果。

SELECT b.title
FROM customers c
JOIN orders o
ON c.customerid = o.customerid
JOIN orderitems oi
ON o.orderno = oi.orderno
JOIN books b
ON oi.isbn = b.isbn
WHERE c.firstname = &firstname
AND c.firstname = 'JAKE';

我已经尝试 运行 上面的代码,但是在我输入 'JAKE' 之后,它显示了这个错误,

ORA-00904: "JAKE": invalid identifier 00904. 00000 - "%s: invalid identifier" *Cause:
*Action: Error at Line: 9 Column: 21

我想知道我哪里做错了。请指教。提前谢谢你。

& 变量周围添加 ' 单引号。

WHERE 子句中而不是两个条件检查与 AND 相同的列名,使用任何一个。所以下面的代码将起作用。

SELECT b.title
FROM customers c
JOIN orders o ON c.customerid = o.customerid
JOIN orderitems oi ON o.orderno = oi.orderno
JOIN books b ON oi.isbn = b.isbn
WHERE c.firstname = '&firstname'