select decode性别,男,1,0,decode性别,女,1,0 from 表 3,order by对字符列进行特定的排序 还可以在Order by中使用Decode例表table_subject,有subject_name列要求按照语数外的顺序进行排序;Decode函数的语法结构如下decode exPRession, search_1, result_1decode expression, search_1, result_1, search_2, result_2decode expression, search_1, result_1, search_2, result_2, , search_n;select tsname 姓名,sumnvldecodetssc, #39语文#39, tzz,0 语文,sumnvldecodetssc, #39数学#39, tzz,0 数学,sumnvldecodetssc, #39英语#39, tzz,0 英语,sumnvldecodetssc, #39;具体语句为select decodeflag,1,#39是#39,0,#39否#39 from table,语句的意思是选择表中的“1”替换为“是”,“0”替换为“否”decode函数,是oracle公司的SQL软件ORACLE PLSQL所提供的特有函数计算方式,以其简洁的。
你那个DECODE结果是#391,2#39那就是被当成一整个字符串了 相当于tradestatus IN #391,2#39;DECODE函数相当于一条件语句IF它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认;也就是说ename,job ,sal 这三个数据类型要一致 必须一致 你可以检查一下 处理好这个就可以了 DECODEename,job ,sal,ename 这隐性判断是 当ename=job 把ename=sal 否则 就等于他 本身 所以 这三个; #39IBM#39,IIf supplier_;首先说明,这种统计应该是Group By 更适合啊另外,对于提出的问题 1SQL并没有错,我已经测试过2你需要看下你的SEX下的值是否匹配 比如,你直接select count* from e where sex=#39男#39 看看查询结果,如果是;oracle的if语句采用decode函数DECODEvalue,if1,then1,if2,then2,if3,then3else表示如果value 等于if1时,DECODE函数的结果返回then1如果不等于任何一个if值,则返回else 示例比如,有个if语句如下if。
安装orafunc插件,兼容oracle函数。
可以在里面再嵌套一个decode 比如 decodea,1,decodeb,2,1,2;select decode#39苹果#39,#39苹果#39,1,#39梨子#39,2,0 from dual结果为1select decode#39梨子#39,#39苹果#39,1,#39梨子#39,2,0 from dual结果为2select decode#39橘子#39,#39苹果#39,1,#39梨子#39,2,0 from dual结果为0第;NVL2函数实现的是若testValue为NULL,返回SubValue1,否则返回SubValue22Decode函数 Decode函数的原型为 DecodetestValue, if1, then1, if2,then2else针对testValue进行测试,若testValue等于if1则返回then1;decode可以代替case when语句,在语句写法上可以节省很多coding的时间 但是执行效率上其实与case when是差不多的 oracle特有这个函数的更多是为了方便使用,而不是效率考虑。
网友留言: