【发布时间】:2017-05-09 06:30:21
【问题描述】:
我想从 SQL Server 的数据库中选择最新的记录。如果只选择一项,则最终输出如下:
SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%OS%' AND Distrito LIKE '%'
+ 总是加在最后:
ORDER BY Data DESC
注意:Distrito LIKE '%' 必须保留,因为它有时会以编程方式更改为 % 以外的其他内容。
如果选择了更多项目,则查询将获得一个UNION 行以编程方式为每个项目添加。最后,一如既往地添加ORDER BY。检查所有 4 项的示例:
SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%OS%' AND Distrito LIKE '%'
UNION ALL SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%Rad%' AND Distrito LIKE '%'
UNION ALL SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%Aci%' AND Distrito LIKE '%'
UNION ALL SELECT TOP(10) * from dbo.Eventos WHERE Tipo LIKE '%Out%' AND Distrito LIKE '%'
ORDER BY Data DESC
但这给了我OLDEST 10 个结果,每个WHERE 子句排序BY Data DESC。
我怎样才能获得每个项目的NEWEST X 个结果 (WHERE)?
【问题讨论】:
-
这看起来真的像 SQL server 而不是 mySQL。你确定你的标签是正确的吗?
标签: sql-server select sql-order-by union union-all