如果一列为空,如何对 SQL 结果进行排序?
P粉969666670
P粉969666670 2024-04-05 00:39:32
0
1
393

我对查询结果的排序有疑问。 我有 3 列需要排序:

ORDER BY level DESC, logo DESC, bName ASC

我想先通过 DESC 订购最高“级别”,这很有效。

之后,我想订购“徽标”是否为空,但不订购我的查询所执行的徽标内容。

最后我想按 bName ASC 订购

所以我想要的输出是这样的:

1. Level-3 has logo bName a-z
2. Level-3 has no Logo bName a-z
3. Level-2 has logo bName a-z
4. Level-2 has no Logo bName a-z
5. Level-1 has logo bName a-z
6. Level-1 has no Logo bName a-z

是否可以仅通过一个干净的查询来完成此操作?

相应的示例输入:

级别 徽标 bName
3 测试.jpg 测试名称
2 测试名称
1 12test.jpg 另一个测试名称
1 3test.jpg 无名氏
2 约翰·多伊
2 渡渡鸟
3 5test.jpg 测试名称
1 sdsd-test.jpg 测试名称

在某些情况下,列徽标为空(例如 = '' ),但不是 NULL

P粉969666670
P粉969666670

全部回复(1)
P粉745412116

您尚未提供有关数据的信息以及“徽标为空”的实际含义,但原则是:

ORDER BY 
  level DESC, 
  case when logo  '' then 1 else 2 end,
  bName ASC;
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!