partition by 降序无效
时间: 2024-01-23 22:14:48 浏览: 20
根据提供的引用内容,可以使用PARTITION BY子句对数据进行分组,并按照指定的排序方式进行排序。在这种情况下,使用降序排序可以确保最新的数据排在前面。如果需要判断数据的有效性,可以使用ROW_NUMBER()函数来为每条数据分配一个序号,然后根据序号判断是否为有效数据。
以下是一个示例SQL语句,演示如何使用PARTITION BY子句和降序排序来判断数据的有效性:
```sql
WITH cs AS (
SELECT
ROW_NUMBER() OVER (PARTITION BY b.rybh ORDER BY b.jdrq DESC, b.crt_time DESC) bj,
b.ID,
b.rybh,
f_b_getryxm(b.rybh) AS xm,
f_b_formatdatestr(b.jdrq, 'yyyy-mm-dd') AS jdrq,
b.crt_time
FROM t_d_k_wsgl_bgqzcs b
LEFT JOIN t_d_ryxx r ON b.rybh = r.rybh
)
SELECT
ROW_NUMBER() OVER (ORDER BY jdrq DESC, crt_time DESC) rn,
ID,
rybh,
xm,
jdrq,
crt_time,
CASE bj
WHEN 1 THEN '有效'
ELSE '无效'
END sfyx
FROM cs
```
在上述示例中,使用PARTITION BY子句将数据按照`b.rybh`进行分组,并按照`b.jdrq`和`b.crt_time`的降序进行排序。然后使用ROW_NUMBER()函数为每条数据分配一个序号`bj`。最后,根据序号判断数据的有效性,如果序号为1,则表示有效,否则表示无效。