zoukankan      html  css  js  c++  java
  • 写SQL经验积累2

     1
    --这一行的:SUBSTR('0602+0202', 5, 1) 想把中间的运算符“+”截取出来,但是截取出来是字符串,而不是round(val1+val2)的运算形式,所以报错了:
    SELECT round(t3.FVALUE1 SUBSTR('0602+0202', 5, 1) t4.FVALUE2, 4) FVALUE,   
     2  T4.FDEPTCODE,  3  T3.FPERSONID,  4  T3.FORGID  5 FROM (SELECT T1.FVALUE FVALUE1,  6 '' FVALUE2,  7  T1.FDEPTCODE,  8  T1.FPERSONID,  9  T1.fdate, 10  T1.FORGID 11 FROM APP_LHZ_DAY T1, App_Lhz_Basetypes T2 12 WHERE T1.FTYPEID = T2.FID 13 AND T2.FZBCODE = SUBSTR('0602+0202', 1, 4) 14 AND T1.FDATE = 15 to_date('2019-06-24', 'yyyy-MM-dd')) T3, 16 (SELECT '' FVALUE1, 17  T1.FVALUE FVALUE2, 18  T1.FDEPTCODE, 19  T1.FPERSONID, 20  T1.FORGID 21 FROM APP_LHZ_DAY T1, App_Lhz_Basetypes T2 22 WHERE T1.FTYPEID = T2.FID 23 AND T2.FZBCODE = SUBSTR('0602+0202', 6, 4) 24 AND T1.FDATE = 25 to_date('2019-06-24', 'yyyy-MM-dd')) T4 26 WHERE T3.FDEPTCODE = T4.FDEPTCODE 27 AND T3.FPERSONID = T4.FPERSONID 28 AND T3.FORGID = T4.FORGID 29 AND T3.FDEPTCODE = T4.FDEPTCODE 30 and t4.FVALUE2 <> 0 31 ORDER BY FDEPTCODE, FPERSONID
     1 --这一行的:SUBSTR('0602+0202', 5, 1) 想把中间的运算符“+”截取出来,但是截取出来是字符串,而不是round(val1+val2)的运算形式,所以报错了:
     2 SELECT round(t3.FVALUE1 SUBSTR('0602+0202', 5, 1) t4.FVALUE2, 4) FVALUE,   
     3  T4.FDEPTCODE,  
     4  T3.FPERSONID,  
     5  T3.FORGID  
     6  FROM (
     7      SELECT T1.FVALUE FVALUE1,  
     8      '' FVALUE2,  
     9      T1.FDEPTCODE,  
    10      T1.FPERSONID,  
    11      T1.fdate, 
    12      T1.FORGID 11 FROM APP_LHZ_DAY T1, App_Lhz_Basetypes T2 
    13      WHERE T1.FTYPEID = T2.FID 
    14      AND T2.FZBCODE = SUBSTR('0602+0202', 1, 4) 
    15      AND T1.FDATE =  to_date('2019-06-24', 'yyyy-MM-dd')
    16 ) T3, 
    17 (SELECT '' FVALUE1, T1.FVALUE FVALUE2, T1.FDEPTCODE, T1.FPERSONID, T1.FORGID FROM APP_LHZ_DAY T1, App_Lhz_Basetypes T2 WHERE T1.FTYPEID = T2.FID AND T2.FZBCODE = SUBSTR('0602+0202', 6, 4) AND T1.FDATE = to_date('2019-06-24', 'yyyy-MM-dd')
    18 ) T4
    19 WHERE T3.FDEPTCODE = T4.FDEPTCODE AND T3.FPERSONID = T4.FPERSONID 
    20 AND T3.FORGID = T4.FORGID AND T3.FDEPTCODE = T4.FDEPTCODE 
    21 and t4.FVALUE2 <> 0 
    22 ORDER BY FDEPTCODE, FPERSONID

    以上SQL报错,报错在第一行,原因:第一行的

    解决方法如下:

  • 相关阅读:
    [独孤九剑]Oracle知识点梳理(五)数据库常用对象之Table、View
    [独孤九剑]Oracle知识点梳理(四)SQL语句之DML和DDL
    [独孤九剑]Oracle知识点梳理(三)导入、导出
    [独孤九剑]Oracle知识点梳理(二)数据库的连接
    [独孤九剑]Oracle知识点梳理(一)表空间、用户
    [独孤九剑]Oracle知识点梳理(零)目录
    jmeter安装
    MongoDB 用Robomong可视化工具操作的 一些简单语句
    限制输入字数JS
    我们来谈谈最近最热门的微信小程序
  • 原文地址:https://www.cnblogs.com/mySummer/p/11079702.html
Copyright © 2011-2022 走看看