我试图返回一个表,该表包含表"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同时具有名字和姓氏。