SQL中 Decode 和 Sign 语法的简单用法
含义解释:
decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
Sign函数用于比较大小
如:Sign(2-1) 就回返回-1 、 Sign(1-1)就回返回0 、Sign(1-2)就回返回-1
一般decode和sign连起来使用,用于判断达到什么条件赋什么值 。
下面Decode 和Sign联合起来做一个例子:
一张员工表(emp),
first_name salary
John 1800
Amy 2800
Tom 3600
...
要求用SQL,当salary<2000, level='low'
当2000<=salary<3000, level='middle'
当salary>=3000, level='high'
显示如下
first_name level
John low
Amy middle
Tom high
...
SQL查询方法如下:
select first_name,
decode(sign(salary - 2000), -1, 'low',
decode(sign(salary - 3000), -1, 'middle', 'high' )
) as level
from emp;
分类:
常见SQL使用详解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!