sql - 如果元组出现超过预定义的数量(如 5),则返回 sql 查询结果中的元组。

标签 sql sql-server database row-number

通过连接不同的表,我有很多行。我想编写一个查询,当且仅当行数大于特定数字(如 5)时,它返回当前行,否则不返回任何内容。我知道我可以务实地做到这一点,但是有什么办法可以在 sql server 中作为查询来做到这一点。

编辑:我选择了@prdp 建议的方式。使用 row_number 创建了一个公用表表达式,并选择所有 rowId 大于 5 的表。

最佳答案

试试这个

WITH cte
     AS (SELECT *,
                Row_number()
                  OVER (
                    ORDER BY id) AS rowid
         FROM   <tablename>)
SELECT *
FROM   cte
WHERE  EXISTS(SELECT 1
              FROM   cte
              WHERE  rowid >= 5) 

关于sql - 如果元组出现超过预定义的数量(如 5),则返回 sql 查询结果中的元组。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396716/

相关文章:

c# - 如何使用 c# 监控 SQL Server 表更改?

sql-server - SQL Server 中旧的 row_number() 和新的基于 OFFSET + FETCH 的分页之间有什么区别?

database - 存储和检索多个头像图像尺寸

ios - 无法使用 objective-c 将行插入到 sqlite 数据库中

sql - 如何从 SQL 中获取数据到 Excel

php - 在 mysql 中使用 Unix 时间戳作为条件

Mysql:将选择的输出作为表中的新列

c# - 使用 C# asp.net 将日期时间保存到 MS SQL 时出错

sql - 为什么这个 VB 和 SQL 不起作用?

sql - 为什么历史上人们使用 255 而不是 256 作为数据库字段大小?