搜索为null时oracle中的解码行为

yemsmvp

我正在阅读Oracledecode()文档据我所知,打电话时decode(expr, search1, value1, search2, value2...)甲骨文铸件exprsearch2search3以种类search1并进行比较。

所以,如果search1NULL那么什么会search2search3等被转换为?

范例

create table sc(a date, b varchar2(256));

insert into sc values(
  to_date('2010-01-01 11:22:33', 'yyyy-mm-dd hh24:mi:ss'),
  '2010-01-01 11:22:33'
);

select decode(
         to_date('2010-01-01 11:22:33', 'yyyy-mm-dd hh24:mi:ss'),
         null,
         1,
         b,
         123,
         a,
         456
       )
from   sc;

为什么结果是456,而不是123?

马达

编辑:当要与之比较的第一个值为null或char时,所有值都将转换为varchar2并作为字符串进行比较。因此,比较始终相等的类型,如果不比较字符串,则不要将null用作第一个比较值:

select decode(
         to_date('2010-01-01 11:22:33', 'yyyy-mm-dd hh24:mi:ss'),
         to_date('2010-01-01 11:22:31', 'yyyy-mm-dd hh24:mi:ss'),
         0,
         null,
         1,
         to_char(to_date('2010-01-01 11:22:33', 'yyyy-mm-dd hh24:mi:ss')),
         2,
         to_date(b, 'yyyy-mm-dd hh24:mi:ss'),
         123,
         a,
         456
       )
from   sc;

如果第一个比较值是NULL,则日期将转换为具有默认日期表示形式的字符串(可以与b中的日期表示不同),并与b比较。如果要查看默认值,请使用以下命令:

select to_char(to_date('2010-01-01 11:22:33', 'yyyy-mm-dd hh24:mi:ss')),b from sc

如果我们阅读Oracle文档:

如果第一个结果的数据类型为CHAR或第一个结果为null,则Oracle会将返回值转换为数据类型VARCHAR2。

值也会发生同样的情况。第一个值为null,然后将所有内容转换为字符串。您可以在这里看到它。

SELECT DECODE (1, NULL, 1,  '01', 2,  '1 ', 3,  '1', 4,  1, 5) FROM DUAL;

现在,用数字更改null

SELECT DECODE (1, 5, 1,  '01', 2,  '1 ', 3,  '1', 4,  1, 5) FROM DUAL;

这会带来什么:

SELECT DECODE (TO_DATE ('2010-01-01 11:22:33', 'yyyy-mm-dd hh24:mi:ss'),  
               NULL, 1,  
               TO_DATE ('2010-01-01 15:22:32', 'yyyy-mm-dd hh24:mi:ss'), 2,  
               '3') 
FROM DUAL

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当列中的行为空时,ORACLE显示计数为零

来自分类Dev

当列中的行为空时,ORACLE显示计数为零

来自分类Dev

函数在C中返回局部变量的地址时为NULL行为

来自分类Dev

当搜索的属性为null时,MVC搜索栏抛出NullException

来自分类Dev

为引用变量分配null时的GC行为

来自分类Dev

通过NSSecureCoding解码NSArray时的奇怪行为

来自分类Dev

在 Oracle SQL 中为 NULL 添加位图

来自分类Dev

在Oracle中按日期过滤时的奇怪行为

来自分类Dev

在Python中为True定义值时的奇怪行为

来自分类Dev

在Unity中为GameObject设置颜色时的奇怪行为

来自分类Dev

在Access SQL中检查Null值时的奇怪行为

来自分类Dev

在绑定的ComboBox中设置null值时的奇怪行为

来自分类Dev

检查'C'中的NULL字符时出现奇怪的行为

来自分类Dev

Oracle SQL-解码为多个元素

来自分类Dev

oracle中IN的行为

来自分类Dev

解码为R中的汉字

来自分类Dev

在SQL中,当字段为NULL时附加

来自分类Dev

在SQL中,当字段为NULL时附加

来自分类Dev

弹性搜索。_Score在聚合中为null。为什么?

来自分类Dev

弹性搜索。_Score在聚合中为null。为什么?

来自分类Dev

Java中的null行为

来自分类Dev

在搜索中,当期望为真时给出假

来自分类Dev

在PHP中解码字符串时发生意外行为(来自AJAX POST调用)

来自分类Dev

在包含纬度的列中搜索时,R返回null

来自分类Dev

当MySQL中的SUM为空时,减法结果为Null

来自分类Dev

当Icon为Null时,JLabel出现意外的Text-Alignment行为

来自分类Dev

在oracle中搜索列名

来自分类Dev

将G2A搜索结果(json)解码为数组

来自分类Dev

在Oracle SQL中为最小值,但不为NULL

Related 相关文章

热门标签

归档