【发布时间】:2017-06-20 09:46:35
【问题描述】:
字段包含名字和姓氏。
PERSON:
Bob Franklin
Gene Smith
Roy G. Biv
我正在尝试创建一个查询,该查询将姓氏放在首位,然后是逗号,然后是名字。那部分不是问题。我遇到的问题是 Roy G. Biv。我没有返回他的姓氏,而是得到 G. Biv。我编写了一个单独的查询,可以正确返回姓氏,但我不知道如何将两者一起实现。
SELECT DISTINCT PERSON, SUBSTR(PERSON,INSTR(PERSON,' ')+1)|| ', '|| substr(person,1,INSTR(person,' ') -1) AS PERSONS
FROM LEDGER
这会返回:
Franklin, Bob
Smith, Gene
G. Biv, Roy
这个查询给了我想要的结果,来自中间名的名字:
select distinct person, SUBSTR(PERSON,INSTR(PERSON,'.')+1)
from ledger
where person like '%BIV'
返回:
Biv
结合这些的最佳方法是什么?我对 SQL 很陌生,放轻松!谢谢!
【问题讨论】:
-
从不同的名字开始会容易得多..
-
我同意。这是一个任务。
-
还要考虑到有些人的名字带有空格,例如。玛丽·凯特。
-
姓氏也可以有空格,例如Jean Claude van Damme ...您应该清楚地说明这里有哪些数据类型。
-
规范化数据库或简单地为
FNAME和LNAME创建2个字段