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

相关推荐
devlei4 小时前
从源码泄露看AI Agent未来:深度对比Claude Code原生实现与OpenClaw开源方案
android·前端·后端
码农阿豪5 小时前
行标识符的抉择:深入理解数据库领域的OID与ROWID机制
数据库·oracle
Jagger_5 小时前
周末和AI肝了两天,终于知道:为什么要把AI当做实习生
前端
weixin_456164835 小时前
vue3 子组件向父组件传参
前端·vue.js
不剪发的Tony老师5 小时前
MyCLI:一个增强型MySQL命令行客户端
数据库·mysql
沉鱼.445 小时前
第十二届题目
java·前端·算法
SHANGHAILINGEN5 小时前
2400 万个未培养病毒重新定义病毒多样性
数据库·测序·组学
刘晨鑫15 小时前
PostgreSQL日常维护
数据库·postgresql
xiaokangzhe6 小时前
PG数据库日常应用
数据库·oracle
Setsuna_F_Seiei6 小时前
CocosCreator 游戏开发 - 多维度状态机架构设计与实现
前端·cocos creator·游戏开发