`

转:SQL Server 排序的时候使null值排在最后

阅读更多

转载自:https://www.cnblogs.com/Brambling/p/7046148.html

转载内容如下:

最近遇到一个 SQL Server 排序的问题,以前也没了解过,然后这次碰到了。

才发现 SQL Server 排序的问题,在指定的排序列中 null 值会默认排在最前面,因为在 SQL Server 中 null 值默认为最小值

后来问了一下万能的百度,找到了下面一种比较简单的处理方法。

首先建了一个表插入了一些测试数据。

create table UserInfo(
    UserInfoID    int not null identity(1,1) primary key,
    User_No        int null,
    User_Names        nvarchar(16)  null
)

insert into UserInfo(User_No,User_Names)
select '104','名称三' union all
select '103','名称二' union all
select '108','名称七' union all
select '105','名称四' union all
select '106','名称五' union all
select '102','名称一' union all
select '107','名称六' union all
select '109','名称八' 

insert into UserInfo(User_Names)
select '名称九' union all
select '名称十'

select * from UserInfo

结果如下:

下面先直接排序看下效果。

select UserInfoID,User_No,User_Names 
from UserInfo 
order by User_NO asc

结果如下:

可以看到指定排序的列,其值为 null 的排在了最前面。

下面就是解决办法

select UserInfoID,User_No,User_Names 
from UserInfo 
order by case when User_NO is null then 1 else 0 end asc,User_NO asc

结果如下:


以上就是解决方法了,既把指定排序列的值为 null 的排在最后了,也可以按照指定的列的值进行排序,是不是很简单。 
   

  • 大小: 6.2 KB
  • 大小: 5.9 KB
  • 大小: 6.8 KB
分享到:
评论

相关推荐

    从Sql Server迁移到 Oracle 过程中代码需要调整的地方

    - SQL Server中,空字符串`''`和NULL是两个独立的值,而在Oracle中,空字符串被视为NULL。 - 在比较时,SQL Server允许`field1 = NULL`,而Oracle则要求`field1 IS NULL`。 - 使用`SET`赋值时,两者都接受`field1...

    sql server 中行转列

    在 SQL Server 中实现行转列的方法多种多样,包括使用静态 SQL 结合 `CASE` 和 `SUM` 函数的方式,以及使用动态 SQL 构建复杂查询的方式。这两种方法各有优势: - **静态 SQL**:适合于列名固定的情况,编写简单...

    SQL Server 2005 Beta 2 Transact-SQL 增强功能

    SQL Server 2005 Beta 2带来了对Transact-SQL的显著增强,这些改进主要集中在提升查询表达能力、数据完整性(DRI)支持、性能优化以及错误处理方面。以下是对这些增强功能的详细说明: 1. **排序函数**: SQL ...

    sqlserver sql语法大全

    ### SQLServer SQL语法大全 #### 创建数据库 在SQL Server中创建数据库是一项基本操作,通过`CREATE DATABASE`命令来实现。创建数据库时可以指定文件和日志文件的位置、初始大小及增长方式等参数。 **语法示例:**...

    ORACLE和SQL Server的语法区别

    - **SQL Server:** SQL Server也有自己的内置函数集,如`ISNULL()`、`CONVERT()`、`FLOOR()`等。 - **转换策略:** - 用相应的SQL Server函数替代Oracle函数。 #### 五、字符串连接 - **Oracle:** Oracle使用`||...

    sqlserver面试他常见问题,一些大型公司的面试题目

    - **NULL 的含义**:在 SQL Server 中,`NULL` 表示未知(Unknown)或未定义的数据值。它不同于任何数字或字符值,并且在比较操作中通常会导致结果为 `NULL` 或者 `UNKNOWN`。 - **NULL 与数据完整性**:`NULL` 值...

    SQL Server2005基本方法和语句

    在数据库管理与开发领域,SQL Server 2005 是一个重要的工具,它提供了丰富的功能来满足数据存储、管理和查询的需求。本文将深入解析 SQL Server 2005 的基本方法与常用语句,包括数据库的创建与删除、表的创建与...

    SQL Server 基本语言

    在 SQL Server 中,主要的操作指令可以分为四类:数据查询语言 (DQL)、数据操纵语言 (DML)、数据定义语言 (DDL) 和数据控制语言 (DCL)。 ##### 1. 数据查询语言 (DQL) DQL 主要用于检索数据。最常用的 DQL 是 `...

    Sqlserver 2014 之 自定义字符串聚合函数

    在描述中提到的“Sqlserver 2014 之 自定义字符串聚合函数”正是针对这个需求而展开的讨论。 在SQL Server 2014之前,如果要实现类似`STRING_AGG`的功能(这是在SQL Server 2017中引入的),我们需要创建自定义的...

    mssql sqlserver 使用sql脚本实现相邻两条数据相减.docx

    在本文中,我们将讨论如何使用 SQL 脚本在 MSSQL SQL Server 中实现相邻两条数据相减的方法。 创建表和插入数据 首先,我们需要创建一个名为 XXX 的表,并插入一些示例数据。以下是创建表和插入数据的 SQL 语句: ...

    sqlserver函数大全

    SQL Server函数大全是一份详尽的参考资料,涵盖了在SQL Server数据库管理系统中常用的各种函数。SQL Server作为企业级的关系型数据库管理系统,提供了丰富的内置函数来帮助用户处理数据查询、计算、转换等各种任务。...

    SQl server练习50题

    在SQL Server的学习过程中,实践是提升技能的关键。"SQL Server练习50题"是一个非常实用的资源,旨在帮助用户巩固SQL Server的基础知识,特别...在解决这些练习时,不断实践和反思将使你在SQL Server的掌握上更进一步。

    ORACLE与SQLSERVER语法差异分析

    在数据库管理领域,ORACLE和SQL SERVER是两个广泛使用的数据库管理系统,它们在语法上有许多相似之处,但也存在一些显著的差异。以下是对标题和描述中所述知识点的详细说明: 1. **递归查询**: - 在SQL SERVER中...

    《SQL Server数据库管理与开发》试题

    16. **聚合函数**:在SQL中,`COUNT(*)`、`SUM(*)`、`MAX(*)`和`AVG(*)`是聚合函数,用于统计和计算,但`SUM(*)`和`AVG(*)`通常不包含NULL值,而`COUNT(*)`则会计算所有行,包括NULL。 17. **通配符查询**:`LIKE`...

    sql server术语学习表

    ### SQL Server 术语学习表详解 #### All (全) **定义**:在SQL查询语句中,`ALL`关键字用于指定一个子查询的所有结果都必须满足条件。 **用途**:通常与比较运算符一起使用来确保某个条件对于一组值中的每一个都...

    sql server 练习题(我的练习)

    - **T-SQL 语言**: 用于在SQL Server中执行数据定义、查询和其他数据库管理任务的标准语言。 5. **创建表语句** - **CREATE TABLE**: 用于创建新表。 6. **聚合函数 COUNT 的使用** - **COUNT(*)**: 返回表中的...

    SQLserver数据库教程

    在SQL Server中,创建数据库有两种主要方法:使用企业管理器和通过SQL语句。 **2.1 使用企业管理器创建数据库** 此方法适合初学者,操作直观易懂。首先,通过"开始"菜单启动"企业管理器",找到并展开"SQL Server ...

    SQLServer中的常用函数.doc

    在SQL Server中,函数是执行特定任务的预定义代码块,可以帮助我们处理和操作数据。以下是一些在SQL Server中常用的函数的详细说明: 1. **字符串函数**: - `LEN()`:计算字符串的长度,不包括尾部的空格。 - `...

    sqlserver数据统计一

    标题“sqlserver数据统计一”指向的是一个关于SQL Server数据库管理系统中的数据统计主题。SQL Server是微软公司开发的关系型数据库系统,广泛应用于企业级数据存储和管理。在数据统计方面,它提供了强大的查询和...

    SQL Server 2000 试卷

    【SQL Server 2000 试卷解析】 ...综上所述,此试卷全面测试了考生对SQL Server 2000的基础知识、SQL语言使用和数据库管理的理解,通过解答这些问题,可以评估考生在SQL Server 2000方面的技能水平。

Global site tag (gtag.js) - Google Analytics