SQL Like查询最后一次匹配

时间:2010-06-05 17:22:21

标签: sql

我有一个名称字段的数据库。 (即姓名M.姓或只是名字姓氏) 试图按姓氏过滤。
如何进行查询以查找最后一个空格?

像是一样的东西 从人员中选择*,其中名称为“%a%”(但空格是最后一个空格)

谢谢,
三通

3 个答案:

答案 0 :(得分:1)

如果使用某些版本的Microsoft SQL Server,您可以reverse()字符串,然后使用charindex()查找第一个空格。

答案 1 :(得分:0)

如果这是mySQL,您可以考虑使用SUBSTRING_INDEX()函数(使用count = -1)。

答案 2 :(得分:0)

SELECT CASE WHEN [Name] LIKE '% [^ ]%'
            THEN SUBSTRING([Name], 
                           LEN([Name]) - CHARINDEX(' ', REVERSE([Name])) + 1, 
                           8000)
            ELSE [Name]
       END AS [LastName]
FROM [Customers]