substr()与substrb()
区别在于对汉字的截取,一个汉字可能会占2个或3个字符,substr()截取的长度是指字符串的长度,substrb()截取的长度是指字符串所占字符的长度。
例子如下:
select substr(‘哈哈哈哈哈哈‘,1,6) from dual;
哈哈哈哈哈哈
select substrb(‘哈哈哈哈哈‘,1,6) from dual; --使用的库一个汉字是占3个字符,UTF-16
哈哈
select substr(‘[email protected]#$%^&*()‘,1,16) from dual;
[email protected]#$%^&*()
select substrb(‘[email protected]#$%^&*()‘,1,16) from dual;
[email protected]#$%^&*()
decode()
格式为decode(expr,v_1,value_1,v_2,value_2,...,v_n,value_n,default),如果expr的值为v_1,则返回value_1;值为v_2,则返回value_2;如果在列表中没有与expr匹配上的值,则返回default。在这里,null值与null值视为等价。
select decode(mod(10,3),1,‘余1‘,2,‘余2‘,‘整除‘) res from dual; --余1
select decode(mod(11,3),1,‘余1‘,2,‘余2‘,‘整除‘) res from dual; --余2
select decode(mod(12,3),1,‘余1‘,2,‘余2‘,‘整除‘) res from dual; --整除
时间: 2024-10-12 16:07:40