oracle中where条件中类型的隐式转换

sql的where条件中,等式两边类型不一致时,数据库会做一次隐式类型转换。
如果是数字类型(诸如number,double,integer等)的话,会默认的把带引号的转成数字再进行查询,也就是说带引号和不带引号是一样的。
select * from t where to_number(char_col) = num_val
oracle会从“大”类型转换到“小”类型。
oracle会在char类型的值或字段上进行to_number或to_date转换。而不会在number或date上做to_char操作。
同样,如果是字符类型,这一列都是数字,那么你不带引号的数字也会被oracle默认转成字符类型。但如果这一列不全是数字,那么必须带引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值