java - sqlite 中按两列排序

标签 java android sqlite

在产品表中,我有两列,例如下面的特价和价格。 要求是我必须根据特价对产品进行排序。如果某个产品的特价为0.0,则应按正常价格进行排序。如果特价不是0.0,那么应该采取特价。我想要一个sqlite查询来排序。请帮助我。

|---------------------|------------------|------------------|
|     special_price   |     price        |   product_id     |
|---------------------|------------------|------------------|
|          550.0      |       699.95     |      1           |
|---------------------|------------------|------------------|
|          0.0        |       260.0      |      2           |
|---------------------|------------------|------------------|
|          250.0      |      332.66      |      3           |
|---------------------|------------------|------------------|

最佳答案

我们可以尝试通过 CASE 表达式进行订购,该表达式会根据您的逻辑选择正确的订购价格。

SELECT *
FROM yourTable
ORDER BY CASE WHEN special_price > 0 THEN special_price ELSE price END;

关于java - sqlite 中按两列排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52386729/

相关文章:

java - Nashorn 类型错误 : Cannot call undefined in <eval>

java - 联系 7 "It seems that you device does not support camera"

c++ - QSqlTableModel 和 DATETIME 列

sql - 比较不同表中的 2 列

java - Android Studio 2.2,Gradle 构建失败,出现 java.lang.OutOfMemoryError : unable to create new native thread

java - 如何在 Struts 2 中处理单个表单中的多个操作

java - 如何使用 java 中的正则表达式或子字符串从字符串中提取文本?

android - RecyclerView 中的 OnLongItemClick

android - AdapterView 项目未填充父项

java - 如何从 SQLite 表中获取所有行?