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

相关推荐
lzhdim3 分钟前
SQL 入门 8:SQL 复杂查询:子查询与ALL关键词
数据库·sql·mysql
别抢我的锅包肉7 分钟前
【FastAPI】 + SQLAlchemy 异步 ORM 实现完整 CRUD 操作
前端·fastapi
不像程序员的程序媛11 分钟前
mysql 表主键id 自增&雪花
数据库·mysql
l1t17 分钟前
DeepSeek辅助编写的Oracle dmp转SQL脚本和CSV文件工具
数据库·人工智能·sql·oracle
Carino_U38 分钟前
Innodb底层原理与MySQL日志机制
数据库·mysql
tq6J5Yg141 小时前
windows10本地部署openclaw
前端·python
稻草猫.1 小时前
Spring事务操作全解析
java·数据库·后端·spring
ISkp3V8b41 小时前
从 ReAct 到 Workflow:基于云端 API 构建事件驱动的智能体
前端·react.js·前端框架
星空2 小时前
前端--A_1--THML标签
前端
momin~2 小时前
MySQL-part2【MySQL表的增删改查】
数据库·mysql