java - 如何对SQL结果进行排序

标签 java sql oracle

我有一个 SQL 查询,我想在其中根据搜索参数获取颜色名称。 (数据库:Oracle10,前端:Java)

表(表1)

ID  COLORNAME
--- --------------------
1   Blue
2   Light Blue
3   Dark Blue
4   Dark Red
5   Light Red
6   Red

以下是我的查询,用于获取包含 Red 单词的颜色列表(搜索参数为 Red)

select * from table1
where colorname LIKE '%Red%'

输出:

ID  COLORNAME
--- --------------------
4   Dark Red
5   Light Red
6   Red

以上输出是正确的,但我希望以 Red 开头的 ColorName 必须首先出现,然后是包含单词 Red 的颜色.

期待:

ID  COLORNAME
--- --------------------
6   Red
4   Dark Red
5   Light Red

那么我怎样才能在查询中实现这一点呢?

最佳答案

取决于您如何决定红色应该放在第一位。 根据您的具体情况

select * 
from table1
where colorname LIKE '%Red%'
order by nullif(colorname , 'Red') nulls first

关于java - 如何对SQL结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17121625/

相关文章:

sql - 第 191 行出现错误 : ORA-01489: result of string concatenation is too long

java - IntelliJ - java.lang.NoClassDefFoundError : net/jodah/failsafe/Policy

java - 从另一个项目导入类不起作用

java - 使用 Picasso 加载的图像在滚动时被删除并不断重新加载

mysql - SQL - 创建表时出现 "Default"- 是否有必要?

sql-server - 如何设计一个存储非常大数据的表?

java - PSQL异常 : This connection has been closed - Spring Boot + AWS RDS + Postgres

mysql - 在数据库中存储登录详细信息

php - 选择月份中的日期在 30 到 15 之间的所有记录

java - 从SCDF启动任务时出现异常 "java.lang.IllegalArgumentException: Invalid TaskExecution, ID 3"如何解决?