看网上有人写的SQL语句,在GROUP BY中使用||,不知道是什么意思
 GROUP BY XIH.KINDH,
       XIH.ITEM_NUM,
       MICV.CATEGORY_CONCAT_SEGS,
       MDEV.ELEMENT_VALUE || DECODE(MDEV1.ELEMENT_VALUE,null,'','#'||MDEV1.ELEMENT_VALUE),
       XUD2.NAME,
       XUD.NAME,50  
完整的如下:
select XIH.KINDH,
       --XIH.ITEM_ID,
       XIH.ITEM_NUM 料號,
       MICV.CATEGORY_CONCAT_SEGS 型號,
       MDEV.ELEMENT_VALUE || DECODE(MDEV1.ELEMENT_VALUE,null,'','#'||MDEV1.ELEMENT_VALUE) 分號度數,
       --XIL.SEQ 部門代號,
       --XIL.REASON_NUM 不良原因代號,
       XUD2.NAME 部門,
       XUD.NAME 不良原因, 
       0 派工數,
       SUM(XIL.QTY) 數量
  FROM XWP_INSPECT_HEADER XIH,
       XWP_INSPECT_LINE XIL,
       XWP_USER_DATA XUD,
       XWP_USER_DATA XUD2,
       MTL_ITEM_CATEGORIES_V MICV,
       MTL_DESCR_ELEMENT_VALUES MDEV,
       MTL_DESCR_ELEMENT_VALUES MDEV1
 WHERE XIH.PROG='XWPF702F'
   AND XIH.HEADER_ID=XIL.HEADER_ID
   AND XIL.REASON_NUM=XUD.NUM
   AND XIL.SEQ=XUD2.NUM
   AND XUD.KIND='P6' --原因碼
   AND XUD2.KIND='P8' --部門
   AND MICV.CATEGORY_SET_NAME='鉅明型號'      
   AND MICV.ORGANIZATION_ID=83
   AND MDEV.ELEMENT_NAME(+)='分號'
   AND MDEV1.ELEMENT_NAME(+)='度數'
   AND MDEV.INVENTORY_ITEM_ID(+)=XIH.ITEM_ID
   AND MDEV1.INVENTORY_ITEM_ID(+)=XIH.ITEM_ID
   AND MICV.INVENTORY_ITEM_ID=XIH.ITEM_ID
   AND XIH.KINDH='&P1'
   AND TO_CHAR(XIH.TRS_DATE,'YYYYMMDD') BETWEEN '&P6' AND '&P7'
 GROUP BY XIH.KINDH,
       XIH.ITEM_NUM,
       MICV.CATEGORY_CONCAT_SEGS,
       MDEV.ELEMENT_VALUE || DECODE(MDEV1.ELEMENT_VALUE,null,'','#'||MDEV1.ELEMENT_VALUE),
       XUD2.NAME,
       XUD.NAME,50        
 ORDER BY XIH.KINDH, 部門, 不良原因, 料號
select中也有用到||,这个||是不是表示"或"呢????????????????

解决方案 »

  1.   

    类似其它语言中的+,用于连接两个字符串
    也可以用函数concat来代替,但它们的区别是,||可以连接多个,
    而函数只能接受两个参数
    SQL> select 'aa'||'bb' from dual;
     
    'AA'||'BB'
    ----------
    aabbSQL> select concat('aa','bb') from dual;
     
    CONCAT('AA','BB')
    -----------------
    aabb
      

  2.   

    ||在oracle中是字符串连接符啊
      

  3.   

    GROUP BY XIH.KINDH,
      XIH.ITEM_NUM,
      MICV.CATEGORY_CONCAT_SEGS,
      MDEV.ELEMENT_VALUE || DECODE(MDEV1.ELEMENT_VALUE,null,'','#'||MDEV1.ELEMENT_VALUE),
      XUD2.NAME,
      XUD.NAME,50select XIH.KINDH,
           ...
           MDEV.ELEMENT_VALUE || DECODE(MDEV1.ELEMENT_VALUE,null,'','#'||MDEV1.ELEMENT_VALUE) 分號度數,
    这里是将查询语句中的字段进行排序,没什么特别的