SQL>createtablet(numnumber(6,2));TablecreatedSQL>insertintotvalues(0);1rowinsertedSQL>insertintotvalues(0.6);1rowinsertedSQL>insertintotvalues(1);1rowinsertedSQL>commit;CommitcompleteSQL>select*fromt;NUM\\——–0.000.601.00实验那位兄弟的说法。

这个问题yangtingkun大师专门写个几篇文章介绍。

但是bwin必赢登录入口命名指定了num列,返回值是什么类型呢?num是数字肯定没有什么问题?难道说疑点出现在null的返回值类型上?继续实验。

,”

******1:使用decode判断字符串是否一样**DECODE(value,if1,then1,if2,then2,if3,then3,…,else)含义为IF条件=值1THENRETURN(value1)ELSIF条件=值2THENRETURN(value2)……ELSIF条件=值nTHENRETURN(value3)ELSERETURN(default)ENDIFsql测试selectempno,decode(empno,7369,smith,7499,allen,7521,ward,7566,jones,unknow)asnamefromempwhererownum<=10输出结果7369smith7499allen7521ward7566jones7654unknow7698unknow7782unknow7788unknow7839unknow7844unknow**2:使用decode比较大小**selectdecode(sign(var1-var2),-1,var1,var2)fromdualsign()函数根据某个值是0、正数还是负数,分别返回0、1、-1sql测试selectdecode(sign(100-90),-1,100,90)fromdual输出结果90100-90=10>0则会返回1,所以bwin必赢登录入口最终取值为90反正selectdecode(sign(100-90),1,100,90)fromdual输出结果100100-90=10>0返回1,判断结果为1,返回第一个变量100,最终输出结果为100**3:使用bwin必赢登录入口分段**工资大于5000为高薪,工资介于3000到5000为中等,工资小于3000为低薪sql测试SELECTename,sal,DECODE(SIGN(sal-5000),1,highsal,0,highsal,\\-1,DECODE(SIGN(sal-3000),1,midsal,0,midsal,\\-1,DECODE(SIGN(sal-1000),1,lowsal,0,lowsal,\\-1,lowsal)))FROMemp输出结果SMITH800lowsalALLEN1600lowsalWARD1250lowsalJONES2975lowsalMARTIN1250lowsalBLAKE2850lowsalCLARK2450lowsalSCOTT3000midsalKING5000highsalTURNER1500lowsalADAMS1100lowsalJAMES950lowsalFORD3000midsalMILLER1300lowsal**4:利用decode实现表或者试图的行列转换**sql测试SELECTSUM(DECODE(ENAME,SMITH,SAL,0))SMITH,SUM(DECODE(ENAME,ALLEN,SAL,0))ALLEN,SUM(DECODE(ENAME,WARD,SAL,0))WARD,SUM(DECODE(ENAME,JONES,SAL,0))JONES,SUM(DECODE(ENAME,MARTIN,SAL,0))MARTINFROMEMP输出结果如下SMITHALLENWARDJONESMARTIN8001600125029751250**5:使用bwin必赢登录入口来使用表达式来搜索字符串**decode(expression,search_1,result_1,search_2,result_2,….,search_n,result_n,default)bwin必赢登录入口比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。

“xx