查找一个句子的最后一个单词SQL



我试图返回一个表,该表包含表"dep"one_answers"emp"中名以"a"开头、姓以"R"开头的所有员工。我尝试使用INDEXOF函数,但似乎不起作用。我能做什么?

select emp.nome,emp.sal,emp.ndep,dep.nome, 
from emp, dep 
where (substring(emp.nome,1,indexof(' ',emp.nome)))like 'A%' 
and (substring(emp.nome,lastindexof(' ',emp.nome),emp.nome.lenght)) like 'R%'
order by 1

做第一个子字符串没有意义,因为字符串"ABC DEF"就像"a%",无论您是否在空格后截断位。

姓氏,您使用lastindexof会导致空格成为名称的一部分,因为您忘记添加1以跳到空格后的下一个字符上,而' RST''R%'不同。我把你的lastindexof换成了instr,因为我不确定lastindexf是否像instr一样普遍适用。用负的起始索引调用instr会导致它从字符串的末尾向后搜索

select emp.nome,emp.sal,emp.ndep,dep.nome, 
from 
emp 
INNER JOIN dep ON /*something_goes_here*/
where emp.nome like 'A%' and 
SUBSTR(emp.nome, INSTR(emp.nome, ' ', -1) + 1,emp.nome.length)) like 'R%'
order by 1

您需要通过在描述表应该如何加入中放入一个子句来完成查询

我希望出现这样的条件:

where nom like 'A% R%'

假定CCD_ 3同时具有名字和姓氏。

最新更新