SQL:如何在 orderby 中将 null 和空条目排序到前面?

2023-11-22

如果我的数据库中有以下条目:

ID Name
1 [空]
2 [空字符串]
3 阿尔法
4 布拉沃
5 查理

..那么使用 ORDER BY 时如何将有名称的行排序到前面?

如果我使用 ORDER BY Name,我会得到上面的列表,但我实际上想要:

3 Alpha
4 Bravo
5 查理
1 [空]
2 ''


ORDER BY 
    CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = ''    THEN 2 
    ELSE 3 
    END DESC, 
    Name ASC
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL:如何在 orderby 中将 null 和空条目排序到前面? 的相关文章

  • WHERE IN 条件不接受字符串值

    我正在动态构造一个带有名称的字符串用户数据在 PL Sql 过程中通过附加用户名 单引号 和逗号 的形式 abc123 xyz456 pqr789 但是当我将此字符串传递给 SELECT 语句的 WHERE IN 条件时 SELECT FR
  • 在创建 IDENTITY 的同一个 T-SQL 语句中获取 IDENTITY 值?

    有人问我是否可以有一个插入语句 其中有一个作为 身份 列的 ID 字段 以及分配的值是否也可以插入到同一插入语句中同一记录中的另一个字段中 这可能吗 SQL Server 2008r2 Thanks 你不能真正做到这一点 因为将用于的实际值
  • 变更数据捕获性能损失是否仅限于启用 CDC 的表?

    我读到启用更改数据捕获显然会对数据库性能产生影响 这种性能损失是否仅影响启用了 CDC 的表 还是会影响数据库中的所有操作 在我的情况下 我使用 SSIS 并且有大量数据移入和移出临时数据库 我的系统中还有一些用于转换的查找表 我希望使用
  • 什么时候数据库被称为嵌入式数据库?

    术语 嵌入式数据库 与 数据库 具有不同的含义吗 我见过的嵌入式数据库有两种定义 嵌入式数据库就像专门为 嵌入式 空间 移动设备等 设计的数据库系统一样 这意味着它们在紧张的环境中 内存 CPU 方面 可以合理地执行 嵌入式数据库就像不需要
  • SQL - 我需要将总值划分为另一个表中的多行

    假设我在 SQL Server 2008 中有以下表 学校桌 School Id Course Id Total Students 1 Acct101 150 1 Acct102 100 2 Acct101 110 2 Acct102 13
  • T-SQL Cross Join 获取缺失值

    这是我的问题的一个简单例子 我有一个创建报告的存储过程 DECLARE Report TABLE Product VARCHAR 10 Purchases MONEY default 0 DECLARE Range TABLE minP M
  • 使用@@Identity

    我想知道如何从另一个数据库的表中获取最近生成的自动编号值 目前我正在这样做 Do Until rsA EOF Inserts new row here works Set rs New ADODB Recordset rs Open SEL
  • 在 MySQL 查询中一起使用 DISTINCT 和 COUNT

    这样的事情可能吗 SELECT DISTINCT COUNT productId WHERE keyword keyword 我想要的是获取与关键字关联的唯一产品 ID 的数量 同一产品可能与一个关键字关联两次或多次 但我希望每个产品 ID
  • 如何使用 php $row 检索 sql 日期时间对象?

    例如 sql SELECT FROM db query sqlsrv query conn sql while row sqlsrv fetch array query echo row date column 会崩溃 我找到的大多数答案都
  • SQL 中的最佳 LIKE 搜索

    我有一个零件数据库 我将不断查询该数据库以获取报价系统 零件数据库有超过 1 400 000 条记录 用户将开始输入零件号 他们希望系统能够在仅几个字符后找到这些零件号 因此我需要能够进行通配符搜索 例如 SELECT NeededFiel
  • 根据条件生成脚本

    可以使用 SQL Server Management Studio 生成特定表的插入 方法是右键单击数据库 gt 任务 gt 生成脚本 选择表 最后仅选择数据 然而 随着时间的推移 表变得越来越大 我只需要具有特定条件的插入 这只会返回该表
  • 使用 IF..ELSE IF 控制 T-SQL SP 中的流程 - 还有其他方法吗?

    我需要将我的 T SQL 存储过程 MS SQL 2008 控制流分支到多个方向 CREATE PROCEDURE fooBar inputParam INT AS BEGIN IF inputParam 1 BEGIN END ELSE
  • 为什么我的 SQL 占位符没有被替换(使用 Go pq)?

    根据文档 我正在这样做 var thingname string asdf var id int err database QueryRow SELECT id from things where thing thingname Scan
  • 使用 WAMP 在浏览器中显示为注释的 PHP 代码 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 正如标题中所述 我的 PHP 代码显示在浏览器代码检查器中 就像被注释掉一样 例如
  • MYSQL 从表中选择,获取表中最新/最后 10 行

    最好 最简单的方法是什么 我目前的查询是 SELECT FROM chat WHERE userID session AND toID friendID OR userID friendID AND toID session ORDER B
  • 如何编写 T-SQL 查询来为每个客户端选择前 1 条记录?

    我有一个简单的脚本 我试图获取每个客户端的最新记录 我如何在 TSQL 中执行此操作 这是我目前的代码 但是 这只是总共选择了一条记录 此记录显示所有客户的最新记录 而不是每个客户 请问我该如何重新表述 SELECT TOP 1 C Cli
  • 将查询结果即时导出到文件

    我需要将查询结果导出到 csv 文件并将该文件放在网络共享文件夹中 是否可以在存储过程中实现此目的 如果是 则会出现另一个限制 我可以在没有系统管理员权限的情况下实现此目的 也就是不使用 xp cmdshell BCP 实用程序吗 如果 2
  • 从数据库中删除重复的行

    我需要从数据库中删除重复的行 我可以用简单的sql查询来完成吗 如果没有 请告诉我一些快速算法来做到这一点 Example id field one field two 1 0000000 11111111 2 2222222 333333
  • 如何获取与值匹配或存在于另一个表中的记录?

    我试图弄清楚在这种情况下如何获取所有任务 其中两个字段等于某个值或者它们存在于另一个表中 这是查询 SELECT TASKS task id TASKS task title TASKS task description TASKS tas
  • Crystal Reports 假定存储过程中列的数据类型错误

    Crystal Reports Engine 有时认为从某些存储过程返回的字段实际上是类型的原因是什么money is a varchar 255 因此 我无法应用任何数字格式 你确定你有铸成金钱的领域吗 您最近是否更改了数据类型 并且之后

随机推荐