Oracle DECODE
来源:互联网 发布:网络诈骗的款能追回吗 编辑:程序博客网 时间:2024/05/29 15:09
语法:
DECODE(expr, search, result [, search, result ]... [, default ] )
应用:
DECODE函数将每一个expr和search的值做比较。如果expr的值与search的值相等,Oracle数据库就会返回相应的result。如果找不到匹配的值,Oracle返回default。如果没有default,Oracle返回null值。
参数可以是任意数值类型(NUMBER,BINARY_FLOAT, or BINARY_DOUBLE)和字符型。
1、如果expr和search是字符型,Oracle通过非填充的比较语义来比较它们。expr,search和result可以是CHAR, VARCHAR2, NCHAR, or NVARCHAR2中任意类型的数据类型。字符串返回的是VARCHAR2型数据类型,它和第一个result参数处于同一个字符集。
2、如果第一个search-result对是数值型的,Oracle会比对所有的search-result表达式以及expr来决定具有最高优先级的参数数值,并隐式转换其余参数的数据类型以及返回值的数据类型。
search、result和default的值可以由表达式运算得来。Oracle数据库使用的是短路评价。也就是说,数据库只在将每个search值和expr值对比之前才评价search的值,而不是在与expr对比之前评价所有的search值。
Oracle在比对之前自动将expr和每个search的值转换成第一个search值的数据类型,并自动将返回值转换成与第一个result相同的数据类型。如果第一个result有CHAR数据类型或者为NULL,Oracle会将返回值转换成VARCHAR2类型。
在DECODE函数里,Oracle将两个null值认为是相等的。如果expr和第一个search同时为空,那Oracle会返回所有所有的result。
DECODE所能容纳的最大参数数目是255个,这其中包括expr,search,result以及default。
例子:
例子解码warehouse_id的值,如果warehouse_id为1,返回Southlake,为2返回San Francisco等等。如果warehouse_id不是1,2,3,4中的任意一个,函数返回Non domestic。
SELECT product_id,
DECODE (warehouse_id, 1, 'Southlake',
2, 'San Francisco',
3, 'New Jersey',
4, 'Seattle',
'Non domestic')
"Location of inventory" FROM inventories
WHERE product_id < 1775;
原文
- oracle decode
- oracle decode
- Oracle DECODE
- oracle decode()
- oracle decode()
- ORACLE decode
- oracle decode
- Oracle DECODE
- oracle decode
- oracle decode
- oracle decode.oracle 函数用法之decode
- oracle decode 应用
- decode [Oracle SQL][转贴]
- Oracle中Decode()函数
- oracle decode 用法
- Oracle decode用法
- ORACLE 中的DECODE函数
- oracle decode使用方法
- 基于开源软件构建先进的嵌入式电源管理(2)
- mysql中插入和显示中文字符问题
- 查看界面上文本框的值是否改变,如果改变提示是否保存
- 【转载】搜索引擎如何对付“暗网”
- 验证数字的正则表达式集
- Oracle DECODE
- 2010年5月5日(新公司入职,第五周星期三)
- SQLServer : EXEC和sp_executesql的区别
- KernelIoControl和OEMIoControl的分析和使用(作者:wogoyixikexie@gliet)
- ORACLE存储过程
- 如何区分一个初始化参数是静态还是动态的
- C#串口通信:MSComm控件使用详解
- BindException
- ASP.NET 页面事件执行顺序 收藏