【发布时间】:2016-01-25 18:18:23
【问题描述】:
我有一个 select 语句,对于其中一个返回值,我使用了一个计算。
我想做的是在 where 子句中使用计算的结果。像这样的:
SELECT
ROW_NUMBER()OVER(PARTITION BY val1 ORDER BY val2) AS rnum,
val3,
FROM TestDb
Where (rnum = 1)
但它不喜欢rnum 在where 中。
我正在考虑创建一个表并添加到该表中。然后我就可以select where rnum ... 但这似乎不太优雅。有没有更好的办法?
【问题讨论】:
-
SELECT * FROM(your query here) WHERE rnum=1 或使用 CTE 是最常用的解决方案
-
您能否发布架构以及您想要的结果?
-
感谢 Mihai - 效果很好 :-)