`
足至迹留
  • 浏览: 495679 次
  • 性别: Icon_minigender_1
  • 来自: OnePiece
社区版块
存档分类
最新评论

<db> order by 时sqlserver认为null是最大值

 
阅读更多
order by时sqlserver和oracle对null值的对待相反。

【sqlserver】

sqlserver 认为 null 最小。

升序排列:null 值默认排在最前。

要想排后面,则:order by case when col is null then 1 else 0 end ,col

降序排列:null 值默认排在最后。

要想排在前面,则:order   by case when col is null then 0 else 1 end , col desc

【oracle】:

oracle认为 null 最大。

升序排列,默认情况下,null值排后面。

降序排序,默认情况下,null值排前面。

有几种办法改变这种情况:

(1)用 nvl 函数或decode 函数 将null转换为一特定值

(2)用case语法将null转换为一特定值(oracle9i以后版本支持。和sqlserver类似):
order by (case mycol when null then ’北京漂客’     else   mycol   end)

(3)使用nulls first 或者nulls last 语法。

这是oracle专门用来null值排序的语法。

nulls first :将null排在最前面。如:select * from mytb order by mycol nulls first

nulls last :将null排在最后面。如:select * from mytb order by mycol nulls last

http://blog.sina.com.cn/s/blog_69d5d7130100ubsp.html

(4)在Sql Server 中使用case when then 判断某字段是否为null,和判断是否为字符或数字时的写法不一样,如果不注意,很容易搞错

错误方法:
CASE columnName WHEN null THEN 0 ELSE columnName END

正确方法:
CASE WHEN columnName is null THEN 0 ELSE columnName END
分享到:
评论

相关推荐

    mysql5.1中文手册

    列的最大值&lt;br&gt;3.6.2. 拥有某个列的最大值的行&lt;br&gt;3.6.3. 列的最大值:按组&lt;br&gt;3.6.4. 拥有某个字段的组间最大值的行&lt;br&gt;3.6.5. 使用用户变量&lt;br&gt;3.6.6. 使用外键&lt;br&gt;3.6.7. 根据两个键搜索&lt;br&gt;3.6.8. 根据天计算...

    SQLserver数据库修改.pdf

    =、&lt;&gt;, BETWEEN、IN、IS NULL、IS NOT NULL等)。 需要注意的是,文档内容中存在一些OCR扫描错误,例如,有些地方出现了乱码或是明显缺失的字符,导致部分内容难以理解。在实际应用中,需要对原始文档进行仔细校对...

    SQL Server索引重建手册

    AND ps.index_type_desc &lt;&gt; 'HEAP' AND ps.page_count &gt; 2500 ORDER BY ps.avg_fragmentation_in_percent DESC OPTION (RECOMPILE); ``` #### 方法二:使用`DBCC SHOWCONTIG`命令 此命令用于查看指定表和索引的...

    经典SQL server语句大全

    最大语句可以查找表中的最大值。 23. 最小:SELECT MIN(field1) AS minvalue FROM table1 最小语句可以查找表中的最小值。 六、高级查询运算词 24. UNION 运算符 UNION 运算符可以合并两个结果表,并消除重复行...

    SQL server 2005 操作全集

    - **聚合函数**:如计数`COUNT(*)`,求和`SUM(field1)`,平均值`AVG(field1)`,最大值`MAX(field1)`,最小值`MIN(field1)`。 ### 数据连接操作 - **UNION**:合并多个查询结果,去除重复记录,`UNION ALL`保留所有...

    Microsoft SQL Server常用命令_pdf

    - **应用场景**: 当需要获取表中某列的最大值时使用。 **11.6 分组汇总** - **语法**: `SELECT col1, SUM(col2) AS ali1 FROM tab1 GROUP BY col3;` - **说明**: 对表`tab1`按照`col3`进行分组,并计算每个分组中`...

    MySql(SQLserver)教程傻瓜式总结

    - `CHECK`用于设定列值的检查约束,例如`CHECK(len(列名)&gt;0 AND len(列名)&lt;10)`。 - `NOT NULL`用于设置非空约束。 - `IDENTITY`用于创建标识列,如`IDENTITY(开始值, 增量)`。 6. **插入数据**: - 单行插入:...

    SQLServer2000常用函数大全

    - `MIN(column_name)`和`MAX(column_name)`:返回`column_name`列的最小值和最大值。 6. **分组和排序函数**: - `GROUP BY column1, column2,...`:根据指定的列对结果进行分组。 - `ORDER BY column1 ASC|DESC...

    黄淮学院2010学年第二学期SQL server期末考试

    对数据进行查询统计时,求最大值的函数是_________。 SQL Server 2000的文件包括三类: 主数据文件、_________和_________,其中_________有且只能有一个。 在T-SQL语言中,若要修改某张表的结构,应该使用的修改...

    零基础学习SQL数据库大全

    序列是自增的数字序列,`CREATE SEQUENCE`语句用于创建序列,可以设置最小值、最大值、初始值和每次递增的步长。 7. **修改表结构**: - 添加列:`ALTER TABLE 表名 ADD 新列名 列类型` - 删除列:`ALTER TABLE ...

    sql语句实例(Oracle SqlServer)

    - **最大值**:`SELECT MAX(field1) AS maxvalue FROM table1` - **最小值**:`SELECT MIN(field1) AS minvalue FROM table1` 11. **高级查询运算词** - **UNION**:合并两个查询结果,去除重复行。 - **UNION ...

    经典SQL语句大全

    法一:select * into b from a where 1&lt;&gt;1(仅用于SQlServer) 法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) insert into b(a, b, c) select d,e,f from b; 3...

    精妙SQL速查手册 SQL语句操作整理

    - `COUNT`、`SUM`、`AVG`、`MAX`、`MIN`函数分别用于计算总数、求和、平均值、最大值和最小值。 12. **高级查询运算词**: - `UNION`合并两个查询结果,去除重复行,`UNION ALL`保留所有行,包括重复。 - `...

    SQL精讲语言大全

    - 求和、平均值、最大值、最小值:`SUM(field1)`, `AVG(field1)`, `MAX(field1)`, `MIN(field1)` 11. **高级查询运算词**: - UNION:合并两个结果集,去除重复行。 - UNION ALL:合并两个结果集,保留所有行,...

    sql最全的常用命令语句

    qs.plan_generation_num, qs.execution_count, dbid, objectid FROM sys.dm_exec_query_stats qs CROSS APPLY sys.dm_exec_sql_text(sql_handle) as qt WHERE plan_generation_num &gt;1 ORDER BY qs.plan_generation_...

    经典SQL语句大全,基础、提升、数据开发-经典、SQL Server基本函数

    - 最大值: ```sql SELECT MAX(field1) AS maxvalue FROM table1; ``` - 最小值: ```sql SELECT MIN(field1) AS minvalue FROM table1; ``` 这些基本操作涵盖了日常数据库管理中的大部分需求。 #### 二、...

    sql数据库语法

    3. **备份SQL Server** - 创建备份设备: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 进行备份操作: ```sql BACKUP DATABASE pubs TO testBack...

Global site tag (gtag.js) - Google Analytics