select *
from view_bug_search view1 ,
(select ROW_NUMBER() over(order by id desc ) as rownumber,id
where 1=1 and
state in (1,2,3,4,5,6,9,12,14,15,16,18,19) and
(owner=88 or submitter=88 or itemcharger=88 or checkowner=88 or checkowner1=88 or checkowner2=88 or checkowner3=88 or testcharger=88 or belong=88 or belong1=88 or belong2=88 or belong3=88) ) row_view
where view1.id=row_view.id and
row_view.rownumber between 1 and 20
order by case
when bugosstate=0 then 'severity desc'
else 'thedate desc'
end
实现不同的 bugosstate = 0的时候 按 severity 排序 bugosstate<>0的时候 按thedate排序
分享到:
相关推荐
当你想基于CASE表达式的返回值进行排序时,可以在ORDER BY子句中使用CASE。这使得你可以根据逻辑条件而非原始数据字段进行排序。在以下示例中,首先按价格范围排序,然后按书名排序。 ```sql SELECT CASE WHEN...
(CASE WHEN status = 0 THEN 1 ELSE 0 END) AS sort_order FROM table ORDER BY sort_order, status; ``` 这里,`sort_order`字段将确保值为0的记录先于非0记录,然后按照`status`字段进行内部排序。 ### 4. 总结...
在SQL查询中,`CASE WHEN`常常用于根据不同的条件返回不同的值,或者在`SELECT`, `WHERE`, `GROUP BY`, `ORDER BY`等子句中进行复杂的逻辑操作。 首先,让我们了解`CASE WHEN`的基本语法。在一个普通的`SELECT`语句...
Case函数能够在SELECT语句中对数据进行条件筛选,它还可以在UPDATE语句中根据当前值计算新的值,甚至可以在ORDER BY子句中对结果集进行排序,以及在HAVING子句中对分组后的数据进行条件过滤。 举例来说,在SELECT...
这里`CASE`表达式用于对温度进行分类,并在`GROUP BY`和`ORDER BY`子句中使用,以便按温度区间统计和排序记录。 3. 分时段数据查询: 分时段查询通常涉及在特定时间范围内聚合数据。例如: - 每天数据总和: ``...
case when shijian = '某个值' then 1 else 2 end, paixu desc; ``` 这将取出 table1 中的数据,并且按照 shijian 字段和 paixu 字段进行排序。 取前 10 条数据是数据库查询中非常常见的操作,无论是在 mysql, ...
ROW_NUMBER() OVER (ORDER BY CASE WHEN @SortOrder = 'ASC' THEN @ColumnToOrder END ASC, CASE WHEN @SortOrder = 'DESC' THEN @ColumnToOrder END DESC) AS RowNum, * FROM dbo.[@TableName] ) SELECT *...
ORDER BY CASE WHEN @SortOrder = 'ASC' THEN @SortColumn END ASC, CASE WHEN @SortOrder = 'DESC' THEN @SortColumn END DESC OFFSET @StartIndex ROWS FETCH NEXT @PageSize ROWS ONLY; END ``` 在上述存储...
分页的基本原理是利用`OFFSET`和`FETCH NEXT`语句,结合`ORDER BY`来获取指定范围的数据。例如,如果我们想要获取第N页的数据,每页显示M条记录,那么我们首先需要知道总的记录数(用于计算页数),然后根据页码和每...
ROW_NUMBER() OVER (ORDER BY CASE WHEN @SortColumn IS NULL THEN 1 ELSE [@SortColumn] END @SortOrder) AS RowNum, * -- 这里替换为实际的列名 FROM YourTable -- 替换为你的表名 ) SELECT * FROM CTE ...
CASE WHEN @SortOrder = 'DESC' THEN @SortColumn END DESC OFFSET @StartIndex ROWS FETCH NEXT @PageSize ROWS ONLY; END ``` 在应用程序中调用这个存储过程,我们可以使用ADO.NET或其他ORM框架,如Entity ...
- SQL Server:`SELECT TOP n * FROM 表名 ORDER BY NEWID()` - MySQL:`SELECT * FROM 表名 ORDER BY RAND() LIMIT n` 8. **时间提醒**: 例如,查询距离开始时间超过5分钟的日程安排: ```sql SELECT * FROM...
ROW_NUMBER() OVER (ORDER BY CASE WHEN @SortOrder = 'ASC' THEN @SortColumn END ASC, CASE WHEN @SortOrder = 'DESC' THEN @SortColumn END DESC) AS RowNum, * FROM YourTable ) SELECT * FROM CTE ...
SELECT *, ROW_NUMBER() OVER (ORDER BY CASE WHEN @SortOrder = 'ASC' THEN @SortColumn END ASC, CASE WHEN @SortOrder = 'DESC' THEN @SortColumn END DESC) AS RowNum FROM YourTable WHERE @...
ORDER BY CASE WHEN name LIKE '%数据%' THEN 0 ELSE 1 END, createdat DESC LIMIT 5; ``` 这条语句查找名称或描述包含"数据"的课程,优先返回名称中包含的课程,然后是描述中包含的,最后按创建时间...
此外,也可以在后端代码中通过SQL查询语句(如`ORDER BY`子句)或存储过程来实现排序。 在这个实例中,使用了存储过程来实现排序。存储过程是预编译的SQL代码集合,能够提高数据库操作的性能和安全性。在SQL Server...
对于包含多个字段的表,如`pages`表,其中包含`id`、`url`、`title`和`body`字段,若想根据`url`、`title`和`body`字段的匹配程度进行查询结果排序,可以利用SQL的`ORDER BY`子句结合`CASE`语句实现: ```sql ...
3. **时间倒序显示**:在MySQL中,如果需要时间字段为null的记录排在前面,并且按照时间倒序排列,可以使用`ORDER BY CASE WHEN ... END`,例如: ``` SELECT * FROM 表名 ORDER BY CASE WHEN IFNULL(字段名, '') ...
- **示例**: `SELECT type, vender, pcs FROM 表名称 ORDER BY CASE WHEN type = '类型1' THEN 1 WHEN type = '类型2' THEN 2 ELSE 3 END;` - **说明**: 按照特定顺序对数据进行排序。 **初始化表table1** - **示例...
可以显式指定排序顺序,例如:`SELECT * FROM table_name ORDER BY CASE WHEN column_name > 0 THEN 1 ELSE 0 END, column_name ASC;`。 ##### 9.3 多个字段排序 可以同时指定多个字段进行排序,例如:`SELECT * ...