问题描述:
当在sql中使用decode函数处理数据,decode的结果数据类型是怎么回事?
*在使用decode函数的时候,结果数据都转化成为第一个数据的类型
例如:
decode(date;
0,
null,
1
)
上面的decode函数标示,处理数据date字段列的数据,
当date为0,设置为null,否则设置为1,
这样的sql出来的数据都是第一个设置类型的数据类型,也就是字符串类型了,
当改变为:
decode(date;
0,
to_number(null),
1
)
这样出来的数据就是number类型的。
注意:当需要用得出的数据进行排序的话需要注意数据类型了,字符串类型的排序负数情况会出现问题了。所以应该注意sql中decode函数的结果类型问题。
当在sql中使用decode函数处理数据,decode的结果数据类型是怎么回事?
*在使用decode函数的时候,结果数据都转化成为第一个数据的类型
例如:
decode(date;
0,
null,
1
)
上面的decode函数标示,处理数据date字段列的数据,
当date为0,设置为null,否则设置为1,
这样的sql出来的数据都是第一个设置类型的数据类型,也就是字符串类型了,
当改变为:
decode(date;
0,
to_number(null),
1
)
这样出来的数据就是number类型的。
注意:当需要用得出的数据进行排序的话需要注意数据类型了,字符串类型的排序负数情况会出现问题了。所以应该注意sql中decode函数的结果类型问题。