mysql - MySQL 按子查询结果排序。空最后,> 0 为 1
问题描述
我有一个查询,我想以特定方式排序。首先,如果“antall”> 0,我希望它被排序为 1,以便 antall > 0 的每一行都将在内部由 a.tittel 排序。如果 antall IS NULL 我希望它是最后一个。
SELECT a.tittel,
(SELECT SUM(antall) FROM butikk_lager WHERE butikkdata_nr=ai.valueNumber
AND lokasjon NOT LIKE 'Uts%' AND lokasjon NOT LIKE 'Rekl%'
AND ( varenr='TK180126' OR variant_artid LIKE '%TK180126%' ) LIMIT 0,1 ) AS antall
FROM artikler AS a
JOIN kategorier AS k ON a.kategori_id=k.id
JOIN artikler_innhold AS ai ON a.id=ai.artId AND ai.feltId=22
WHERE k.type=24 ORDER BY ?, a.tittel
解决方案
考虑:
order by (antal > 0) desc, a.title
(antal > 0)
产生1
ifantal
大于0
,0
如果它是0
或小于 ,null
如果它是null
。您可以对其进行降序排序:MySQLnull
在按该方向排序时将 s 放在最后。
推荐阅读
- go - Golang os/exec 刷新标准输入而不关闭它
- session - 多个 API 端点有多少个 aiohttp 会话?
- python - 属性错误:模块“lightgbm”没有属性“LGBMClassifier”和“Dataset”
- java - 如何启用BottomNavigationView的移位模式
- tfs - 是否有任何自定义选项来锁定特定迭代的工作项?
- python - 如何从一个 xpath 选择器中获取一组值(多个值)?
- javascript - 量角器中使用 gettext() 函数并在其他文件中使用它时出现未定义错误
- c# - 在表单关闭 C# 上清除剪贴板
- node.js - 来自 node_modules 的 Node.js 10 require('...') 非常慢
- python - 设置背景后运行turtle模块出错