我正在使用Microsoft Access 2013
我需要进行查询,以便程序可以获取ACTOR'S NAME的姓氏,当ACTOR的名字有他们的全名,例如Kelly Garman和Weird Al Yankovic。扬科维奇有3个值,加曼有2个值。有什么帮助吗?
有超过10,000条记录,其中包含大量不同的名称,因此我需要使用它,以便要求用户输入姓氏,一旦他们这样做,数据库将按姓氏进行查询。
它也是一个查询,用户在询问时输入内容。
数据库中的列位于SELECT语句
中SELECT [RECORD #], [ACTOR'S NAME], [PRODUCTION NAME]
FROM Actors AS A
WHERE [A.ACTOR'S NAME] = [What's the last name?]
数据库文件在这里。 https://drive.google.com/open?id=0B19CRcQGkXoVTTZpaldDWnFuS28
答案 0 :(得分:2)
REVERSE( SUBSTRING( REVERSE([ACTOR'S NAME]), 1, INSTR(' ', REVERSE([ACTOR'S NAME])) - 1))
答案 1 :(得分:2)
要找到在最后一个空格后获取单词所需的姓氏。您无法在MS Access中直接执行此操作。相反,您可以使用InstrRev(Name, ' ')
找到最后一个空格的位置。然后使用Right
来获取其右侧的所有内容,但这需要从字符串的 end 开始。为此,请从名称的长度中减去InstrRev
中的内容。
SELECT Right(Name, Len(Name) - InstrRev(Name, ' ')) as 'Last Name'
FROM Actors
WHERE Right(Name, Len(Name) - InstrRev(Name, ' ')) = 'Yankovic';
不幸的是,我没有MS Access的副本来测试它。
答案 2 :(得分:0)
您可以在WHERE
子句中使用模式匹配。
PARAMETERS [What's the last name?] Text ( 255 );
SELECT A.[Record #], A.[ACTOR'S NAME]
FROM Actors AS A
WHERE A.[ACTOR'S NAME] ALike '% ' & [What's the last name?];