精华内容
下载资源
问答
  • 如何在SQL CASE表达式中返回多个值

    千次阅读 2017-08-17 09:01:50
    Oracle数据库开发中CASE...THEN子句有时需要返回多个值用于判断,如何做才能在CASE...THEN表达式中返回多个值呢,具体参考下面的演示: SQL> select case 2 when to_char(sysdate, 'SS') > 30 then sys.odcivarchar...
    Oracle数据库开发中CASE...THEN子句有时需要返回多个值用于判断,如何做才能在CASE...THEN表达式中返回多个值呢,具体参考下面的演示:
    SQL> select case
      2           when to_char(sysdate, 'SS') > 30 then sys.odcivarchar2list('Sent')
      3           else sys.odcivarchar2list('New', 'Sent')
      4         end options
      5    from dual;
    
    OPTIONS
    --------------------------------------------------------------------------------
    ODCIVARCHAR2LIST('Sent')
    
    SQL> /
    
    OPTIONS
    --------------------------------------------------------------------------------
    ODCIVARCHAR2LIST('New', 'Sent')
    SQL> select *
      2    from table(
      3            select case when to_char(sysdate,'SS') > 30 then sys.odcivarchar2list('Sent')
      4                        else sys.odcivarchar2list('New','Sent')    
      5                   end options
      6            from dual
      7              );
    
    COLUMN_VALUE
    --------------------------------------------------------------------------------
    New
    Sent
    SQL> /
    
    COLUMN_VALUE
    --------------------------------------------------------------------------------
    Sent
    SQL> select *
    from emp
    where report_status in 
    (
    select *
    from table(
    select
    case
    when to_char(sysdate,'SS') > 30 then sys.odcivarchar2list('Sent')
    else sys.odcivarchar2list('New','Sent')
    end options
    from dual
    )
    ) ;

    展开全文
  • Lua 函数返回多个值

    千次阅读 2018-06-05 12:22:16
    function sum(a,b) c= a+b c1=a-b c2=a*b return c,c1,c2 end c,c1,c2=sum(10,2) print(c,c1,c2)
    function sum(a,b)
    
        c= a+b
        c1=a-b
        c2=a*b
    
        return c,c1,c2
    end
    
    c,c1,c2=sum(10,2)
    print(c,c1,c2)

     

    展开全文
  • 后端返回数据前端判断 : (data.prizeName==null) js中直接判断即可 前端定义变量判断方法 var tmp = null; if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ alert("null");} 前端判断!坑 if(! ...

    后端返回数据前端判断 :   (data.prizeName==null) js中直接判断即可

    前端定义变量判断方法     var tmp = null; if (!tmp && typeof(tmp)!="undefined" && tmp!=0){ alert("null");}

    前端判断!坑                      if(! "a"=="b" )   先对a取反几位false     vs     if(! ( "a"=="b") )  对结果取反

    java中判断结果是一样的,这点和js不同   if(! "a".eqals("b"))   if(! ("a".eqals("b"))) 

    =====================================================================================

                          

    var _list = [];
    var freightSingle = {};
    freightSingle.serviceType =1;
    freightSingle.gcId = 2;
    //配置的值
    freightSingle.expeFreight = $("#expenseForm").find("input[name='expeFreight']").val();
    //ftl判断导致页面元素不存在
    var expetaxValue = $("#expenseForm").find("input[name='expeAddedtax']").val();
    freightSingle.expeAddedtax = (expetaxValue===undefined)?"0":expetaxValue;
    freightSingle.isEffect=0;
    console.log(freightSingle)	
    _list.push(freightSingle);
    console.log(JSON.stringify(_list))
    
    
    {serviceType: 1, gcId: 2, expeFreight: undefined, expeAddedtax: "0", isEffect: 0}
    //JSON.stringify(_list)导致expeFreight 字段值丢失
    [{"serviceType":1,"gcId":2,"expeAddedtax":"0","isEffect":0}] 

     

     
    展开全文
  • decode(类型, '类型1', '1', '类型2', '2', '其它') 方法二:使用case语句 最后希望文章对你有所帮助,主要讲述了使用DECODE函数和CASE判断问题,当然如果多个类型也是可以判断并多指输出的,但建议通常...
            这是最近在使用Oracle数据库时的一个问题,个人认为是一个非常经典的问题。假设现在有一张专业表,包括如下信息:


            其中表为:ZY_TAB(ZY_NAME,ZY_CODE,ZY_TYPE,ZY_TIME)。专业表中ZY_NAME表示专业名称,ZY_CODE表示专业代码,ZY_TYPE表示专业类型(包含国家特色专业和省示范专业),ZY_TIME表示设置国家特色专业或省级示范专业的时间。
            例如软件工程,2004年设为省示范专业,2012年升级为国家特色专业。现在需要输出如下图所示的表格:



             如果使用Java后台处理,通常会将整个ZY_TAB内容读取,然后依次对专业的ZY_TYPE(优势专业)进行判断,判断主要包括三类:仅为“国家特色专业”,仅为“省示范专业”,同时为“国家特色专业”和“省示范专业”。
            但是总感觉有些别扭,如果只用SQL语句进行解决,怎么处理呢?


            方法一:decode函数
            相关知识

            首先想到的方法是使用decode函数判断。
            decode(类型, '类型1', '值1', '类型2', '值2', '其它')
            它的优势是可以输出自定义的值,例如:
            decode(sex, 'Man', '男', 'Woman', '女', '无')
            先存在下表:PERSON(NAME,SEX)表示人的姓名和性别。


    select NAME, DECODE(SEX, 'Man', '男', 'Woman', '女', '无') as SEX
    from PERSON;

            通常使用 decode(b, 0, 0, a/b) 防止a/b中分母b为0报错,它的具体含义是如果分母b为0,则SQL返回0,否则返回a/b,相当于执行除法操作。
            再如重命名为自己喜欢的名称,如null自定义命名:nvl(SEX,'定义为空'),它等价于 decode(SEX, NULL, '定义为空', SEX)。

            具体操作
            这里想使用:
            decode(count(ZY_TYPE), '1', '省示范专业', '2', '省示范、国家特色', '无')
    select ZY_NAME, 
        DECODE(count(ZY_NAME), '1', '省示范专业', '2', '省示范、国家特色专业', '无') as TYPE
    from ZY_TAB GROUP BY ZY_NAME;
            输出如下图所示结果,其错误是当count(ZY_NAME)=1时,“国家特色专业”也变成了“省示范专业”,所以仅仅通过判断出现的次数方法不太好。



             方法二:使用case语句
            相关知识
            例如需要判断职员的工资小于或等于2000元时,返回消息“过低”,大于或等于4000时返回消息“过高”,其余返回“正常”。



            这种需求通常会遇到,此时需要使用CASE WHEN来判断转换,代码如下所示:
    select NAME, SEX, SAL, 
        CASE WHEN SAL<=2000 THEN '过低'
             WHEN SAL>=4000 THEN '过高'
             ELSE '正常'
         END AS STATE
    from PERSON
    order by NAME;
            输出如下图所示:


            再举个例子,下面SQL代码是统计各个学位的职工人数:  
    SELECT COUNT(*) AS 总人数,  
        COUNT(CASE WHEN HIGHEST_DEGREE='博士'THEN 1 END) AS 博士人数,   
        COUNT(CASE WHEN HIGHEST_DEGREE='硕士'THEN 1 END) AS 硕士人数,   
        COUNT(*)-COUNT(CASE WHEN HIGHEST_DEGREE='博士'THEN 1 END)-COUNT(CASE WHEN HIGHEST_DEGREE='硕士'THEN 1 END) AS 其他学历  
    FROM TEACHER;  
            COUNT(CASE WHEN HIGHEST_DEGREE='博士' THEN 1 END) AS NUM2
            表示当最高学历HIGHEST_DEGREE字段为'博士'时,统计数量加1。
            当然如果需要计算学院各个班级的总人口,可以采用使用下面的SQL:
            COUNT(CASE WHEN DW_NAME='软件学院' THEN NUM_STU END) AS NUM2
            也可以使用提到的CASE防止除法计算分母为0,ZS总数、SHSJ社会实践人数。即:
            round((case when ZS!=0 then SHSJ/ZS else 0 end),3) as bl

            具体操作
            此时需要使用CASE WHEN来判断,这里使用了两次CASE WHEN,第一次是判断是“国家特色专业”或“省示范专业”,第二次是判断该专业出现的次数,如果出现两次则表示两个类型都存在。
            原始数据如下图所示:



            SQL代码如下所示:
    select ZY_NAME, 
    CASE WHEN COUNT(CASE WHEN ZY_TYPE='省示范专业' OR ZY_TYPE='国家特色专业' THEN 1 END)='2' 
         THEN '省示范专业; 国家特色专业' 
         WHEN COUNT(CASE WHEN ZY_TYPE='国家特色专业' THEN 1 END)='1' 
         THEN '国家特色专业'  
         WHEN COUNT(CASE WHEN ZY_TYPE='省示范专业' THEN 1 END)='1' 
         THEN '省示范专业'  
    ELSE NULL END
    AS TYPE 
    from ZY_TAB group by ZY_NAME;
            使用group by防止专业名称重复,输出结果如下图所示:


            如果需要增加专业的其他信息,如“专业代码”,如下代码所示:
    select ZY_NAME, ZY_CODE, 
    CASE WHEN COUNT(CASE WHEN ZY_TYPE='省示范专业' OR ZY_TYPE='国家特色专业' THEN 1 END)='2' 
         THEN '省示范专业; 国家特色专业' 
         WHEN COUNT(CASE WHEN ZY_TYPE='国家特色专业' THEN 1 END)='1' 
         THEN '国家特色专业'  
         WHEN COUNT(CASE WHEN ZY_TYPE='省示范专业' THEN 1 END)='1' 
         THEN '省示范专业'  
    ELSE NULL END
    AS TYPE 
    from ZY_TAB group by ZY_NAME, ZY_CODE;
            group by 分组中增加ZY_CODE,输出如下图所示:



            进阶篇
            假设现在存在一张专业表ZY,仅仅保存专业名称和专业代码,需要通过连接两张表ZY(专业表)和ZY_TAB(优势专业表)来统计各专业的优势专业信息,怎么处理呢?
            ZY(NAME,CODE,INFO,PLACE)对应(专业名称,专业代码,信息,位置)。



            因为通常数据库设计中,都会设定专业表,再通过外键来关联其他的专业信息,包括优势专业、专业老师情况、专业学生情况、教学情况等等,所以通常需要通过ZY_CODE专业代码来进行关联。
    select NAME, CODE, 
    	(select
    		CASE WHEN COUNT(CASE WHEN ZY_TYPE='省示范专业' OR ZY_TYPE='国家特色专业' THEN 1 END)='2' 
         	THEN '省示范专业; 国家特色专业' 
         	WHEN COUNT(CASE WHEN ZY_TYPE='国家特色专业' THEN 1 END)='1' 
         	THEN '国家特色专业'  
         	WHEN COUNT(CASE WHEN ZY_TYPE='省示范专业' THEN 1 END)='1' 
         	THEN '省示范专业'  
    	ELSE NULL END 
    		from ZY_TAB 
    		where ZY_TAB.ZY_CODE=ZY.CODE
    	) AS TYPE, INFO, PLACE
    from ZY;
            输出如下图所示:


            最后希望文章对你有所帮助,主要讲述了使用DECODE函数和CASE判断多值问题,当然如果多个类型也是可以判断并多指输出的,但建议通常判断该两个类型,要么输出A,要么输出B,要么输出A和B。
            还是那句话,数据库相关的知识,只有当你真正遇到这个需求的时候对你帮助才会非常大,否则你也可以把它当成简单基础知识回顾。
          (By:Eastmount 2016-7-20 晚上8点   http://blog.csdn.net/eastmount/



    展开全文
  • 场景如下, 有一张用户表user,主键用户编号user_id ,类型int; 三张业务表 a_record,b_record...(只要这user_id字符串中的有一人有其中之一业务记录,我就可以返回true,否则返回false ) 这sql语句怎么写?
  • Oracle中函数/过程返回结果集的几种方式: 以函数return为例,存储过程只需改为out参数即可,在oracle 10g测试通过. (1) 返回游标: return的类型为:SYS_REFCURSOR 之后在IS里面定义变量:curr SYS_REFCURSOR; ...
  • /** 判断多个字符串是否相等,如果其中有一个为空字符串或者null,则返回false,只有全相等才返回true */ public static boolean isEquals(String... agrs) { String last = null; for (int i = 0; i ; i++) {...
  • Java为什么两个值相等的对象==比较返回false而两个值相等的不同类型的的基本数据类型返回true
  • 调用函数DELTA,如下图: 相等返回1,不相等返回0
  • boolean的介绍: boolean 数据类型 boolean 变量存储... 将把它的参数转换成一布尔,并且返回包含该的 Boolean 对象。 如果作为一函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一
  • js判断2个值是否相等的规则

    千次阅读 2018-11-27 14:10:22
    1. 如果 x 不是正常(比如抛出一错误),中断执行。 2. 如果 y 不是正常,中断执行。 3. 如果 Type(x) 与 Type(y) 相同,执行严格相等运算 x === y 。 4. 如果 x 是 null , y 是 undefined ,返回 true 。 5....
  • js判断list的某一个值是不是存在

    千次阅读 2018-12-13 22:36:46
    今天要说的是怎么判断list里面的某一个值是不是存在的,其实我们在做js和后端的接口做数据交互的时候会有很种数据结构传递过来,常见的是JSON格式的,我们处理起来也是比较方便的,但是有的时候的需求是不需要...
  • 由此我们可以发现不论是一维还是二维都可以直接来判断,并且返回的是所有结果。其规模与原数组是一致的,只不过是布尔型数据。 那得到布尔型数组后有什么用呢?先看实例: 由此可以发现布尔量可以作为索引,帮助...
  • 在javascript判断变量是否相等

    千次阅读 2019-07-04 10:51:52
    在javascript判断变量是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符 == 操作符 “等同”操作符,简单判断2变量是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较 例子1...
  • mybatis返回boolean时数据库返回null

    千次阅读 2018-06-26 11:50:58
    常规情况,我们使用数据库判断 true or false。所写的语句是select count(id) from ...但是当返回值为null,或者多个值的时候 会怎么样呢,0 1 还是报错?测试表示这种情况下会报错:希望大家使用 boolean 返回时 也...
  • Java 判断对象中某一属性是否为空 每次写博客都不知道咋开头…算了^_^ 直接说问题吧。就是验证一对象中的一属性的是否为空。 自己在网上也找到了很大神给的答案,有看到利用反射机制 public ...
  • 工作中遇到一个问题,表A中有一个字段,存的是编码,但是不规范,存的多个值,用逗号(既有英文逗号,又有中文逗号,还有空格)隔开了;现需要根据编码关联对应的编码表查出编码名称,所以网上查找资料得出了...
  • v-if判断active满足0的时候写法是:v-if="active === 0" 那如果active同时要满足0,1,2三个的时候,如果在v-if里用 || 并列写 ...第二种,使用方法,复用性高,适用场景:多个标签都需要用到此判断 标签中:
  • 学的还没有那么深,有错误或者我的理解有问题的话还请告诉我,谢谢 ...如果两边都转为Boolean型再比较,那么就是true==true,就不会返回false,所以证明不是两边转为Boolean型,再比较!!应该是两边都转为nu...
  • 同一mock 连续次调用返回不同结果实现方式 Mockito.when(methodCall).thenReturn(1x).thenReturn(2x).thenReturn(nx)   /** * 1,serService.checkUserNickName-->TRUE organizationService....
  • 根据两列数据的自定义函数产生新的一列数据 def do_merchant(x,y): return y/x A_2Vehicle_count['vehicle_count...A_2Vehicle_count['vehicle_count']是表中新生成的列,列中的是 do_merchant(x,y)的 返回结果。
  • 有两表A,B,表结构如下: A表B表关联关系说明如下: (1)A.hospital_catalog=B.id (2)A表中hospital_catalog字段的是以 逗号 “,” 隔开,且两边用中括号“[ ]”包起,A中hospital_catalog的是B的id ...
  • mysql一条sql查询多个不同条件下的count(count(if())的用法)!!! 案例 查询数据库中不同日期内的不同状态下的count: sql语句: select date(create_time) as dateTime,count(IF(status!=2,true,null)) as ...
  • MySQL 同一字段匹配多个值

    千次阅读 2018-12-14 11:44:56
     今天想要对某一个字段匹配到多个值进行统计,于是记录下这个知识点。 针对同一个字段需要匹配多个值时,使用or将其连接起来。 SELECT sum(sendCount),sum(succCount) FROM table_name WHERE firstName = "...
  • C#判断是否含有某个

    千次阅读 2013-04-10 15:47:01
    C#中怎么判断数组中是否存在某个数组 (1) 第一种方法: int[] ia = {1,2,3}; int id = Array.IndexOf(ia,1); // 这里的1就是你要查找的 if(id==-1) // 不存在 else // 存在 (2) 第二种方法: ...
  • 给定一整数数组,判断是否存在重复元素。 如果任何在数组中出现至少两次,函数返回 true。如果数组中每元素都不相同,则返回 false。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] ...
  • python中nan值判断与处理

    千次阅读 2019-11-08 18:49:58
    查看空值 df.head() #查看前5行数据 ...df.isnull().any() #判断哪些”列”存在缺失 df[df.isnull().T.any().T] #找出含有nan的所有行 空置处理 填充 #空值处理方式 data.fillna(data.mea...
  • 最近的项目里的一需求,要我判断对象里的所有属性,是否存在不是“”或是null的public boolean checkGoodMode(List<GoodMode> list){ int index=0; String values[] = new String[39];//这里设置39,是...
  • HashMap怎样判断值是否重复

    千次阅读 2015-05-15 18:19:12
    HashMap怎样判断值是否重复?  java.util.HashMap.containsValue()方法的声明。  public boolean containsValue(Object value) ... 该方法调用返回true,如果此映射将一个或多个键映射到指定
  • 在使用springboot中,需要使用JPQL和SQL去...以下是用JPQL和SQL获取单个字段或多个字段的返回类型:JPA查询单个字段:@Query(value="select age from User u where u.name=?1") T find(String userNam...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,154,287
精华内容 461,714
关键字:

多个判断返回不同的值