看网上有人写的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中也有用到||,这个||是不是表示"或"呢????????????????
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中也有用到||,这个||是不是表示"或"呢????????????????
也可以用函数concat来代替,但它们的区别是,||可以连接多个,
而函数只能接受两个参数
SQL> select 'aa'||'bb' from dual;
'AA'||'BB'
----------
aabbSQL> select concat('aa','bb') from dual;
CONCAT('AA','BB')
-----------------
aabb
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) 分號度數,
这里是将查询语句中的字段进行排序,没什么特别的