部分排序数据库字段

发布于 2025-01-04 07:28:33 字数 388 浏览 2 评论 0原文

我需要对包含一些名称、NULL 和一些空白记录的字段“名称”进行排序。不知何故,我需要通过在顶部按字母顺序排列所有名称来对它们进行排序,之后所有包含 NULL 的行都应该出现,之后所有包含空白的行都应该出现。例如,我的表是

id   Name
1    NULL
2    NULL
3    
4    
5    Mobile
6    Apparel 
7    Shoes

所以结果应该是这样的

6    Apparel    
5    Mobile
7    Shoes
1    NULL
2    NULL
3    
4    

这种格式可以有数千行,所以我不知道有多少空行和空白行。上面的例子只是一个示例。

I need to sort a field "name" of that contains some name, NULL and few blank records. Somehow i need to sort them by arranging all the name in alphabetical sort order at the top and after that all rows containing NULL should come and after that all rows containing blank should come. For example my table is

id   Name
1    NULL
2    NULL
3    
4    
5    Mobile
6    Apparel 
7    Shoes

So the result should be like

6    Apparel    
5    Mobile
7    Shoes
1    NULL
2    NULL
3    
4    

There can be thousand of rows in this format so i don't know how many null as well as blank rows are there. The above example is just a sample.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

爱本泡沫多脆弱 2025-01-11 07:28:33
SELECT Name 
FROM
(
 SELECT
   CASE 
     WHEN Name IS NULL THEN 1
     WHEN Name = '' THEN 2
     ELSE 0 END
   Sorter,
   Name
 FROM YourTable
) t
ORDER BY Sorter, Name

或者没有子选择:

SELECT Name
FROM YourTable
ORDER BY
  CASE 
    WHEN Name IS NULL THEN 1
    WHEN Name = '' THEN 2
    ELSE 0 
  END,
  Name
SELECT Name 
FROM
(
 SELECT
   CASE 
     WHEN Name IS NULL THEN 1
     WHEN Name = '' THEN 2
     ELSE 0 END
   Sorter,
   Name
 FROM YourTable
) t
ORDER BY Sorter, Name

Or without subselect:

SELECT Name
FROM YourTable
ORDER BY
  CASE 
    WHEN Name IS NULL THEN 1
    WHEN Name = '' THEN 2
    ELSE 0 
  END,
  Name
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文