zoukankan      html  css  js  c++  java
  • 帆软SQL报异常:多表连接的时候出现错误:未明确定义列

    我刚开始的代码:

     1 select
     2 dm_veh_jdcgz_mx.DAY_ID ,--日期
     3 dm_veh_jdcgz_mx.GLBM ,--管理部门ID
     4 dm_veh_jdcgz_mx.SFZMHM ,--身份证号码
     5 dm_veh_jdcgz_mx.DSRXM ,--姓名
     6 dm_veh_jdcgz_mx.GZTS,--备注
     7 
     8 dim_bas_gzzl.GZZL_MC ,--管理部门名称
     9 
    10 dim_bas_glbm.GLBMMC ,--管理部门名称
    11 dim_bas_glbm.DLBMMC,--大队名称
    12 dim_bas_glbm.XLBMMC --联系地址
    13 from 
    14 dm_veh_jdcgz_mx
    15 left join dim_bas_gzzl
    16 on
    17 dim_bas_gzzl.GZZL= dm_veh_jdcgz_mx.GZZL
    18 left join dim_bas_glbm
    19 on
    20 dim_bas_glbm.GLBM = dm_veh_jdcgz_mx.GLBM
    21 where 1=1 ${if(len(GLBM)==0,"","and GLBM in('"+GLBM+"')")}
    22 AND
    23 DAY_ID>=replace('${startTime}','-','')
    24 AND 
    25 DAY_ID<=replace('${endTime}','-','')

    百度了好久,总算找到原因。

    原文链接:https://blog.csdn.net/wxdsdtc831/article/details/7432774

    原文内容:

    在查询语句中,经常会出现一个错误: 
    SQL基础:ORA-00918:未明确定义列的错误。 

    当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字段名,查询字段无法确认是改查那个字段 
    时,就会报未明确定义列的错误。 

    第一种情况: 
    1.单表时: 
    比如fconsign表中存在三个字段:fcsg_consign_id,fcsg_consign_type,fcsg_consign_status 
    SELECT FCSG_CONSIGN_ID FROM (SELECT FCSG_CONSIGN_ID,FCSG_CONSIGN_TYPE,FC.* FROM FCONSIGN FC) T
    这个SQL语句就会报错,因为在T中FCSG_CONSIGN_ID有两个字段,导致DBMS无法确定要查询的哪个列 
    SELECT FCSG_CONSIGN_STATUS FROM (SELECT FCSG_CONSIGN_ID,FCSG_CONSIGN_TYPE,FC.* FROM FCONSIGN FC) T 
    这样就不会报错了,T中FCSG_CONSIGN_STATUS只有一个,这样就不会报错了。 

    总而言之:在嵌套查询中,外查询的字段在子查询中只能出现一个,否则则无法确定是要查哪个字段。就会报 未明确定义列的错误。 

    2.多表联合查询 
    比如表A,B中都有a字段。 
    select a from A,B 这样就要报错。因为也是无法确定查 

    哪一列。需要明确定义A.a活着B.a (如果在from语句后面为表取了别名,比如 select s_no,s_name,s_score,s.class_no,class_name from student s join class c on (s.class_no = c.class_no)的时候, 则 select语句中那个被多张表都拥有的相同字段名也需要用别名标识 如:s.class_no.)

    后来我看自己的SQL,select的时候已经明确列名属于哪张表了,看了好久,总算找到原因所在了。

    如下图:在 if 中也要指明该字段属于哪张表中。

  • 相关阅读:
    Visual Studio Ultimate 2012 RC win8 Metro应用的一个小bug样式继承
    windows 8 MSDN Examples 中一个奇怪的问题
    升级到IE9变成英文版的解决办法
    windows phone 中 TextBox 的诡异事件 TextChanged
    Windows Phone(OS7.1)中常用控件继承关系
    在Ubuntu使用gcc编译的程序无法运行的问题。
    Jquery实现简单图片切换
    div ul li 加a 错位问题
    asp.net mvc 2.0 数据验证
    asp.net mvc 2 (.net 4.0) “检测到有潜在危险的 Request.Form 值”的解决方法
  • 原文地址:https://www.cnblogs.com/aqiong/p/9372819.html
Copyright © 2011-2022 走看看