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
分享到:
相关推荐
列的最大值<br>3.6.2. 拥有某个列的最大值的行<br>3.6.3. 列的最大值:按组<br>3.6.4. 拥有某个字段的组间最大值的行<br>3.6.5. 使用用户变量<br>3.6.6. 使用外键<br>3.6.7. 根据两个键搜索<br>3.6.8. 根据天计算...
=、<>, BETWEEN、IN、IS NULL、IS NOT NULL等)。 需要注意的是,文档内容中存在一些OCR扫描错误,例如,有些地方出现了乱码或是明显缺失的字符,导致部分内容难以理解。在实际应用中,需要对原始文档进行仔细校对...
AND ps.index_type_desc <> 'HEAP' AND ps.page_count > 2500 ORDER BY ps.avg_fragmentation_in_percent DESC OPTION (RECOMPILE); ``` #### 方法二:使用`DBCC SHOWCONTIG`命令 此命令用于查看指定表和索引的...
最大语句可以查找表中的最大值。 23. 最小:SELECT MIN(field1) AS minvalue FROM table1 最小语句可以查找表中的最小值。 六、高级查询运算词 24. UNION 运算符 UNION 运算符可以合并两个结果表,并消除重复行...
- **聚合函数**:如计数`COUNT(*)`,求和`SUM(field1)`,平均值`AVG(field1)`,最大值`MAX(field1)`,最小值`MIN(field1)`。 ### 数据连接操作 - **UNION**:合并多个查询结果,去除重复记录,`UNION ALL`保留所有...
- **应用场景**: 当需要获取表中某列的最大值时使用。 **11.6 分组汇总** - **语法**: `SELECT col1, SUM(col2) AS ali1 FROM tab1 GROUP BY col3;` - **说明**: 对表`tab1`按照`col3`进行分组,并计算每个分组中`...
- `CHECK`用于设定列值的检查约束,例如`CHECK(len(列名)>0 AND len(列名)<10)`。 - `NOT NULL`用于设置非空约束。 - `IDENTITY`用于创建标识列,如`IDENTITY(开始值, 增量)`。 6. **插入数据**: - 单行插入:...
- `MIN(column_name)`和`MAX(column_name)`:返回`column_name`列的最小值和最大值。 6. **分组和排序函数**: - `GROUP BY column1, column2,...`:根据指定的列对结果进行分组。 - `ORDER BY column1 ASC|DESC...
对数据进行查询统计时,求最大值的函数是_________。 SQL Server 2000的文件包括三类: 主数据文件、_________和_________,其中_________有且只能有一个。 在T-SQL语言中,若要修改某张表的结构,应该使用的修改...
序列是自增的数字序列,`CREATE SEQUENCE`语句用于创建序列,可以设置最小值、最大值、初始值和每次递增的步长。 7. **修改表结构**: - 添加列:`ALTER TABLE 表名 ADD 新列名 列类型` - 删除列:`ALTER TABLE ...
- **最大值**:`SELECT MAX(field1) AS maxvalue FROM table1` - **最小值**:`SELECT MIN(field1) AS minvalue FROM table1` 11. **高级查询运算词** - **UNION**:合并两个查询结果,去除重复行。 - **UNION ...
法一:select * into b from a where 1<>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...
- `COUNT`、`SUM`、`AVG`、`MAX`、`MIN`函数分别用于计算总数、求和、平均值、最大值和最小值。 12. **高级查询运算词**: - `UNION`合并两个查询结果,去除重复行,`UNION ALL`保留所有行,包括重复。 - `...
- 求和、平均值、最大值、最小值:`SUM(field1)`, `AVG(field1)`, `MAX(field1)`, `MIN(field1)` 11. **高级查询运算词**: - UNION:合并两个结果集,去除重复行。 - UNION ALL:合并两个结果集,保留所有行,...
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 >1 ORDER BY qs.plan_generation_...
- 最大值: ```sql SELECT MAX(field1) AS maxvalue FROM table1; ``` - 最小值: ```sql SELECT MIN(field1) AS minvalue FROM table1; ``` 这些基本操作涵盖了日常数据库管理中的大部分需求。 #### 二、...
3. **备份SQL Server** - 创建备份设备: ```sql USE master; EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'; ``` - 进行备份操作: ```sql BACKUP DATABASE pubs TO testBack...