SQL提示输入姓氏以开头的字母

SQL提示输入姓氏以开头的字母,sql,database,oracle,Sql,Database,Oracle,整个问题是: 重写查询,以便提示用户 输入姓氏以开头的字母。例如,如果用户在提示输入字母时输入“H”(大写),则输出应显示姓氏以字母“H”开头的所有员工 SELECT last_name FROM employees WHERE last_name like '%' = &Start_Letter 这不起作用:(此查询应该起作用: SELECT last_name FROM employees WHERE last_name like '&Start_Letter%'; 我

整个问题是: 重写查询,以便提示用户 输入姓氏以开头的字母。例如,如果用户在提示输入字母时输入“H”(大写),则输出应显示姓氏以字母“H”开头的所有员工

SELECT last_name 
FROM employees
WHERE last_name like '%' = &Start_Letter

这不起作用:(

此查询应该起作用:

SELECT last_name FROM employees WHERE last_name like '&Start_Letter%';

我已经在Oracle11g中对其进行了测试。

此查询应该可以:

SELECT last_name FROM employees WHERE last_name like '&Start_Letter%';

我已经在Oracle11g中对其进行了测试。

根据特定应用程序的要求,更有效的解决方案可能是创建基于函数的索引:

CREATE INDEX emp_start_letter_idx
    ON employees ( substr( last_name, 1, 1 ) );
那么您的查询将是:

SELECT last_name
FROM employees
WHERE substr(last_name, 1, 1) = '&Start_Letter';

同样,根据您的需求,这可能会有很多不必要的麻烦!

根据特定应用程序的需求,更有效的解决方案可能是创建基于函数的索引:

CREATE INDEX emp_start_letter_idx
    ON employees ( substr( last_name, 1, 1 ) );
那么您的查询将是:

SELECT last_name
FROM employees
WHERE substr(last_name, 1, 1) = '&Start_Letter';

同样,根据您的要求,这可能会有很多不必要的麻烦!

请确定您正在使用的DBMS。“提示”通常不是DBMS所做的事情,而是客户端代码所做的事情。DBMS之间变量的符号有很大的不同。它的oracle数据库,这个问题来自oracle数据库11g funda注意事项1请识别您正在使用的DBMS。“提示”通常不是DBMS所做的事情,而是客户端代码所做的事情。DBMS之间变量的符号有很大的不同。它的oracle数据库和这个问题来自oracle数据库11g基础1它不起作用:(我得到这个错误:命令行错误:3列:55,但是谢谢,第55列有什么字符?它是
&
…所以很明显,你的应用程序没有将
&起始字母
转换成你的DBMS能理解的东西…如果我这样做的话,它的oracle数据库是:选择姓氏、薪水、部门id、员工id。)对于经理id=&按员工id输入经理id顺序的员工,然后输入经理id将起作用。不起作用:(我得到这个错误:命令行错误:3列:55,但是谢谢,第55列有什么字符?它是
&
…所以很明显,你的应用程序没有将
&起始字母
转换成你的DBMS能理解的东西…如果我这样做的话,它的oracle数据库是:选择姓氏、薪水、部门id、员工id。)对于经理id=&按员工id输入经理id顺序的员工,然后输入经理id将起作用。很高兴知道它有帮助。:)如果它解决了您的问题,请接受答案。谢谢!很高兴知道它有帮助。:)如果它解决了您的问题,请接受答案。谢谢!那就不必大惊小怪了,这正是我所想的。很高兴这是一个有趣的问题。如果您曾经处理过大量的记录和大量的用户,请考虑一些事情。:)我当时也这么认为,不必要的大惊小怪。不管怎样,我很高兴这是一件有趣的事情。如果你曾经处理过大量的记录和大量的用户,那就需要考虑一些事情了。:)