作者:手机用户2502858941 | 来源:互联网 | 2023-09-23 03:53
1.oracle在sql中判断字段值是数字还是字符串:SELECTnvl2(TRANSLATE(123,1234567890,),CHAR,NUMBER)FROMdual;验证是数
1. oracle在sql中判断字段值是数字还是字符串:
SELECT nvl2(TRANSLATE('123','/1234567890','/'),'CHAR','NUMBER') FROM dual;
验证是数字的场景
验证是字符串的场景
2. 延伸应用:判断字段中包括哪几种类型
SELECT DISTINCT fuhao
FROM (
SELECT nvl2(TRANSLATE(MS.STORE_CODE,'/1234567890','/'),'CHAR','NUMBER') fuhao
FROM MC_STORE MS
);
判断字段中包括哪几种类型
3. nvl2与函数介绍
NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2;
TRANSLATE(string,from_str,to_str) 的功能:返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。
如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。