我有一个非常简单的问题:是否可以根据满足哪个条件对检索到的行进行排序?
例如,我有一个人员表,我想检索姓名以“I”开头、以“ster”结尾、或包含“lo”的所有人员,并根据满足这些条件的条件进行排序。首先匹配第一个条件的行,然后匹配第二个条件的行,依此类推。 (没有重复:如果一行满足第一个条件,则不应再次显示第二个条件)
Edit:我使用 Visual C# 工作,并使用 MS Access 管理数据库。 (文件格式为 .mdb,如果有的话)
谢谢=)
一般来说,您可以在您的文件中添加案例陈述order by
.
这在 SQL Server 中可以工作,例如:
order by (case when myCol like 'I%' then 1 when myCol like '%ster' then 2 when myCol like '%lo%' then 3 end)
您使用的是哪种 DBMS?
UPDATE
对于 MS-ACCESS,您可以使用IIF
如这个答案所示的声明:
ms-access-复杂排序依据 https://stackoverflow.com/a/1676843/880904
基于此,您可能想要以下内容:
SELECT *
FROM people
WHERE [name] Like "I*" Or [name] Like "*ster" Or [name] Like "*lo*"
ORDER BY IIf([name] Like "I*", 1, IIf([name] Like "*ster", 2, IIf([name] Like "*lo*", 3, 4)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)