gpt4 book ai didi

database - 如何在Oracle数据库中写两个字母之间的select?

转载 作者:搜寻专家 更新时间:2023-10-30 21:58:16 25 4
gpt4 key购买 nike

我正在编写一个 PL/SQL 脚本,我从用户那里收到两封信,我们称它们为 letter1 和 letter2。我需要能够选择数据库中名称以 letter1 和 letter2(含)之间的字母开头的所有客户。这是我目前所拥有的:

ACCEPT p_fletter PROMPT 'First letter: '
ACCEPT p_lletter PROMPT 'Last letter: '
DECLARE
CURSOR allCusts IS
SELECT name
FROM customer
WHERE name ... -- stuck here
BEGIN
-- call the above in some loop
END;
/

如何选择以 p_fletter 和 p_lletter 之间的字母开头的值?我正在使用 Oracle 数据库。

最佳答案

一个选项是

WHERE substr(name,1,1) between p_fletter and p_lletter

substr(name,1,1) 将返回 name 的第一个字符。然后你可以使用标准的 between 逻辑。

由于您在 name 上应用函数,请注意此查询不能在 name 上使用标准索引。如果这很重要,您可以在 substr(name,1,1) 上创建一个基于函数的索引。如所写,此查询也是区分大小写的(“B”在“A”和“C”之间,但不在“a”和“c”之间)。您可能希望对所有三个字母使用 upperlower 函数,以便进行不区分大小写的比较。

关于database - 如何在Oracle数据库中写两个字母之间的select?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31818190/

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