SELECT
DECODE
(
'持久层技术缩写',
j, 'jdbc',
h, 'hibernate',
i, 'ibatis',
j, 'JPA'
'other'
) AS '具体持久方式'
FROM 'java开发';
可以清楚的看出decode是一个一对一译码过程,这也是它为什么叫decode的原因。
1.serach case的用法
SELECT
CASE
WHEN '女人特征' = '臭味相投'
THEN '死党'
WHEN '女人特征' = '端庄贤慧'
THEN '老婆'
WHEN '女人特征' = '善解人意'
THEN '红颜知己'
WHEN '男人特征' = '志同道合'
THEN '朋友'
WHEN '男人特征' < '道德底线'
THEN '小人远之'
ELSE '不做选择'
END AS '人际交往'
FROM '社会';
可以看出有多种选择,而且可以是不同字段,安顺序进行匹配谁先匹配上了就end,另外它可以对范围进行判断,这是decode不具备的功能
2.simple case的用法
SELECT
CASE
'持久层技术缩写',
WHEN 'j' THEN 'jdbc'
WHEN 'h' THEN 'hibernate'
WHEN 'i' THEN 'ibatis'
WHEN 'j' THEN 'JPA'
ELSE 'other'
END AS '具体持久方式'
FROM 'java开发';
这种方式其实可decode基本一样
decode用的人比较多,可能是因为它出现的比较早,case是在oracle8.1以后才加入的,在之前要在sql中实现if else的逻辑判断却需要其它辅助函数floor和sign。另外decode的用法比较简洁我觉得也是一个原因。
由于case是SQL标准, 所以使用的时候最好优先考虑case语句。
参考了:Frank Kulash的解释
分享到:
相关推荐
本文讲述了Oracle-Decode()函数和CASE语句的比较。
NULL 博文链接:https://hcty31.iteye.com/blog/1119556
主要介绍了Oracle用decode函数或CASE-WHEN实现自定义排序功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
详细讲解了case、when的用法.ASE表达式可以在SQL中实现if-then-else型的逻辑,而不必使用PL/SQL。CASE的工作方式与DECODE()类似,但应该使用CASE,因为它与ANSI兼容。
但是在遇到需要组合条件进行统计时,有时却不如case when 或者另建视图好用。 可是有时就想用DECODE,咋办? 这里给大家介绍一下DECODE如何实现组合条件查询,一句SQL查询一张中国式报表。 (本文的示例,在实际业务...
以下代码在MYSQL中测试通过,MSSQL... #mysql执行 select sum(case when c = ‘1’ then A else B end) from tmp #oracle执行 select sum(decode(c,’1′,a,b)) from tmp #普通联合查询 select sum(d) from ( select
decode_results results; void setup() { Serial.begin(9600); pinMode(9,OUTPUT); irrecv.enableIRIn(); // Start the receiver Serial.println("setup over"); } void loop() { if (irrecv.decode(&...
网络上流传了很多将行数据转换称列数据的方法和应用实例,一般通过decode或者case函数与聚合函数联合实现功能,这里就不再重复。 日前本人在一个偶然的应用中用到了一个需要将列数据转换为行数据的问题。搜索了很久...
6、DECODE函数和行列互换 7、CASE表达式 8、ROWNUM-TOP-N分析 9、相关子查询和非相关子查询 10、增强GROUP BY 11、分析函数(ANALYTICAL FUNCTIONS) 12、ROWID的使用 13、ORACLE 10G正则表达式 14、使用HINT 15、...
then all_c.data_type || decode(all_c.data_precision,0,'',NULL,'','(' || to_char(all_c.data_precision)) || decode(all_c.data_precision,0,'',NULL,'', decode(all_c.data_scale,0,'',NULL,'', ',' || to_...
#include "utility.h" #include "Encrypt.h" int main(void) ... strcpy(destination,objEncrypt.DeCode(source).CStr()); cout解密串:"; break; } } system("PAUSE"); return 0; }
#include "utility.h" #include "Encrypt.h" int main(void) ... strcpy(destination,objEncrypt.DeCode(source).CStr()); cout解密串:"; break; } } system("PAUSE"); return 0; }
code = uc_authcode(code,"DECODE",UC_KEY) Set tget = parse_str(code) If Len(code) Response.write "Invalid Request" Response.End() End If ttime = tget("time") If Not IsNumeric(ttime) Or ttime = "" ...
横表转纵表亦可用与decode意义相似的case语句实现,原理同该语句,这里不再过多描述。
代码如下: — 获取上旬开始... select case decode(trunc((to_char(v_rq, ‘dd’) – 1) / 10), 0, ‘上旬’, 1, ‘中旬’, ‘下旬’) when ‘上旬’ then –返回上个月的下旬 to_char(add_months(v_rq, -1), ‘yyyyMM
多年来的一点oracle知识积累decode替代case,Drop含有特殊字符的表,Oracle的物化视图的建立方法,动态查询语句返回结果集,利用ORACLE的MINUS函数和OVER函数,直接通过视图实现两个记录集的比较,在oracle中生成...
{ob.nickName = Server.UrlDecode(ob.nickName);} //判断哪里返回的 switch (ob.OAuthType) { case "SinaWeiBo": ; info.OPENTYPE = (int)CommonEnumData.OAuthServerType.SinaWeiBo; loginName = "Sina_"; break; ...
第16章 DECODE和CASE SQL中的if-then-else 第17章 创建和管理表、视图、索引、群集和序列 第18章 Oracle基本安全 第Ⅲ部分 高级内容 第19章 高级安全性—— 虚拟专用数据库 第20章 使用表空间 第21章 用SQL*Loader...
SmartAssembly can decode obfuscated stack traces in case you need to debug obfuscated assemblies. SmartAssembly can be integrated into build processes using MS Build or the command-line, and supports ...