在sql中影响排序,但不改变字段值的方法

在order by 后面使用case ... when ... else ... end:

sql 复制代码
select sn, eos_date from device_table
ORDER BY 
	case 
		when eos_date = '1970-01-01' then null
		else eos_date 
		end
		asc
		nulls last

上面的sql中,order by后面不是某个字段,而是一个条件表达式 case ... when ... else ... end.

表示当字段eos_date = '1970-01-01'时,则表示该行数据排序的值为null,其他情况为eos_date的原始值。

但是select到的值,仍然是eos_date的原始值,当eos_date = '1970-01-01',select到的值,仍然是'1970-01-01',而不是null。

相关推荐
parafeeee2 小时前
程序人生-Hello’s P2P
数据库·后端·asp.net
欲买桂花同载酒5822 小时前
程序人生-Hello’s P2P
运维·服务器·数据库
iPadiPhone2 小时前
流量洪峰下的数据守护者:InnoDB MVCC 全实现深度解析
java·数据库·mysql·面试
NineData2 小时前
AI时代的数据对比:DBA还需要盯着屏幕看差异吗?
运维·数据库
Rsun045512 小时前
React相关面试题
前端·react.js·前端框架
Javatutouhouduan3 小时前
SpringBoot整合reids:JSON序列化文件夹操作实录
java·数据库·redis·html·springboot·java编程·java程序员
鹏多多.3 小时前
Flutter使用screenshot进行截屏和截长图以及分享保存的全流程指南
android·前端·flutter·ios·前端框架
LawrenceLan3 小时前
37.Flutter 零基础入门(三十七):SnackBar 与提示信息 —— 页面反馈与用户交互必学
开发语言·前端·flutter·dart