在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。

相关推荐
百***0745几秒前
一步API+Gemini 3.0 Pro进阶实战:多模态开发、性能调优与项目落地
数据库·microsoft
不想写bug呀几秒前
Redis主从复制介绍
数据库·redis
颜颜yan_1 分钟前
Oracle 迁移到 KingbaseES 实战:从评估到追平的一套可落地流程
数据库·oracle
砚边数影16 分钟前
Oracle迁移替换实战:金仓数据库如何破解企业数据迁移难题
数据库·oracle·kingbase·kingbasees·数据库平替用金仓·金仓数据库
burning_maple29 分钟前
mysql数据库笔记
数据库·笔记·mysql
Navicat中国36 分钟前
1月31日·上海 | Navicat 鼎力助阵 OceanBase 年度嘉年华
数据库·oceanbase·navicat
荔枝一杯酸牛奶39 分钟前
HTML 表单与表格布局实战:两个经典作业案例详解
前端·html
Charlie_lll1 小时前
学习Three.js–纹理贴图(Texture)
前端·three.js
Pocker_Spades_A1 小时前
Oracle向KingbaseES迁移:核心痛点拆解与根源分析
数据库·oracle
yuguo.im1 小时前
我开源了一个 GrapesJS 插件
前端·javascript·开源·grapesjs