nidafg 2015-05-02 15:23 采纳率: 0%
浏览 1771

获取默认值的一个问题

     以前项目中有一步获取默认值,是全部通过批量执行select查询的,建立了一个defautValue表(有code,field字段),和一个存储sql表,两个表通过一个code字段关联。就是通过code来获取哪些field需要对应哪些sql。有的需要根据传参数查询数据库,有的其实是定值,为了方便写成了select 常量 from dual。然后在set默认值时,就批量的查询,把值set到对应的field。现在给默认值表加了一个默认值字段,如果有默认值,那么code为空,如果没有,就要有code。这样用join连接时就会出现
            code           field           defaultValue       sql 
            code1          field1              null             SELECT *** FROM 
            null              field2               1                   null
            code2          field3              null             SELECT XX FROM 

以前就直接批量执行sql,然后得到一个Map就set到对应的field了。现在这么做怎么处理呢?

  • 写回答

3条回答 默认 最新

  • threenewbee 2015-05-02 15:27
    关注

    join的时候不要直接join表,而是join一个子查询,子查询中加上判断
    select if(code = null, defaultvalue, code) as code, ... from table

    评论

报告相同问题?

悬赏问题

  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢
  • ¥15 vxworks交叉编译gcc报错error: missing binary operator before token "("
  • ¥15 JSzip压缩文件时如何设置解压缩密码