将以下支持oracle的decode函数转换为sqlserver的case when、、then、、else、、end语法

问题描述

select   decode(a.alarmtype,100,'硬盘变更事件',2000,'杀毒软件事件',2002,'设备监控事件',2003,'硬件监视事件',2004,'软件监视事件',2005,'主机防火墙事件',         2006,'HTTP访问事件',2007,'外联监控事件',2008,'网络配置监控事件',2009,'流量控制事件',2010,'系统性能事件',2011,'拨号监控事件',         2012,'文件监视事件',2013,'补丁自动下发事件',2014,'打印监控事件',2015,'进程监视事件',2016,'端口监视事件',         2017,'共享监视事件',2018,'USB监视事件',2020,'流量统计事件',2022,'文档检查事件',2023,'网络准入事件','未知事件') as LABEL,  count(a.alarmtype) as VALUE  from td_eventinfo a  where substr(a.groupurl,instr(a.groupurl, '/', -1, 1) + 1) = 'td'   and a.creationtime BETWEEN to_date('20130304','yyyyMMdd') AND to_date('20130326','yyyyMMdd')   group by a.alarmtype   order by  count(a.alarmtype) desc

解决方案

现在sqlserver也应该有decode了吧。select case a.alarmtype when 100 then '硬盘变更事件' when 2000 then '杀毒软件事件' when 2002 then '设备监控事件' when 2003 then '硬件监视事件' when 2004 then '软件监视事件' when 2005 then '主机防火墙事件' when 2006 then 'HTTP访问事件' when 2007 then '外联监控事件' when 2008 then '网络配置监控事件' when 2009 then '流量控制事件' when 2010 then '系统性能事件' when 2011 then '拨号监控事件' when 2012 then '文件监视事件' when 2013 then '补丁自动下发事件' when 2014 then '打印监控事件' when 2015 then '进程监视事件' when 2016 then '端口监视事件' when 2017 then '共享监视事件' when 2018 then 'USB监视事件' when 2020 then '流量统计事件' when 2022 then '文档检查事件' when 2023 then '网络准入事件' else '未知事件' end as label, count(a.alarmtype) as VALUE from td_eventinfo a where substr(a.groupurl,instr(a.groupurl, '/', -1, 1) + 1) = 'td' and a.creationtime BETWEEN to_date('20130304','yyyyMMdd') AND to_date('20130326','yyyyMMdd') group by a.alarmtype order by count(a.alarmtype) desc

时间: 2024-08-30 23:23:38

将以下支持oracle的decode函数转换为sqlserver的case when、、then、、else、、end语法的相关文章

oracle中decode函数的用法

oracle函数库中提供了很多有用的函数,比如nvl,sign,round等,其中用得比较多的,功能比较大的还是decode这个函数.这个函数的用法如下: decode(表达式,条件1,结果1,条件2,结果2,...)中间有几个条件与结果根据个人而定,如 decode(sign(100-20),1,20,-1,100)意思是说当(100-20)大于零时,结果为20,而当(100-20)小于零时,结果为100,其中的sign只是一个判断符号的函数 假如要对一个企业的员工进行工资调整,对于3000块

oracle中decode函数与abs、sign、trunc、substr函数的混合使用

decode()函数是ORACLE PL/SQL是功能强大的函数之一,目前还只有ORACLE公司的SQL提供了此函数,其他数据库厂商的SQL实现还没有此功能.(但其不是标准SQL函数,不过这也正是他的优点,其他数据库中提供不了如此强大的函数.) 功能: 1. 流程控制,相当于IF-THEN-ELSE功能.  用法如下:decode( expression , search , result [, search , result]... [, default] ) expression 要比较的表

oracle的decode函数在mysql的实现

oracle中的decode函数很好用,换成mysql中可以用类似下面的方法实现: SELECT IF(TRUE, '真值', '假值'); 如果想再弄复杂点,可以多个IF嵌套,不过嵌套的层次多了,代码可读性就比较差了    

Oracle数据库Decode()函数的使用方法

DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值. DECODE函数的作用:它可以将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值. 区别于SQL的其它函数,DECODE函数还能识别和操作空值.

oracle中decode函数

  DECODE函数相当于一条件语句(IF).它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值.函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式.当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值 DECODE(T1.STATUS, '96', '救援完成', '97', '拖车完成', '98', '终止/自解', '') 施救结果

oracle中decode函数的使用方法_oracle

含义解释: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 IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当

使用Oracle的Decode函数进行多值判断_oracle

Decode函数的语法结构如下: 复制代码 代码如下: decode (expression, search_1, result_1)decode (expression, search_1, result_1, search_2, result_2)decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n) decode (expression, search_1, result_1

Oracle中Decode()函数使用技巧

decode|oracle|函数|技巧 decode()函數使用技巧·软件环境: 1.Windows NT4.0+ORACLE 8.0.42.ORACLE安装路径为:C:\ORANT·含义解释: decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n) ELSE RETU

SQL中 decode()函数简介_MsSql

DECODE函数,是ORACLE公司的SQL软件ORACLE PL/SQL所提供的特有函数计算方式,以其简洁的运算方式,可控的数据模型和灵活的格式转换而闻名. 今天看别人的SQL时看这里面还有decode()函数,以前从来没接触到,上网查了一下,还挺好用的一个函数,写下来希望对朋友们有帮助哈! decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,...值