目的: V1060301 – 如何以 ITEM 排序 1,2,3,..10,10-1,..117,117-1,117-1A,117-A,118(依數字順序)
不可
1,10,100,117,..,2,3, (依字母順序)
處理說明:
1>SQL: --> (若有 - ,則ITEM去除 - 以後文字, , 若無 -, 則用 ITEM) 轉成數字 ,排序
select PROJID,TYPE,
(case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as ITEM_,
CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER) as ITEM__,
ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,
SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,
TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,
PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,
MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,
IS_SER ,IS_CANCEL ,CANCEL_REASON
FROM AMM_CHKCHG A
WHERE 1=1
AND PROJID LIKE '%AJT%'
)
ORDER BY PROJID,TYPE,ITEM__
c# SQL:
select dense_rank() over(order by PROJID,TYPE,
CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER)) as RNK,"
+ " PROJID ,TYPE ,ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,"
+ " SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,"
+ " TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,"
+ " PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,"
+ " MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,"
+ " IS_SER ,IS_CANCEL ,CANCEL_REASON "
+ " FROM AMM_CHKCHG A "
CAST((case when instr(ITEM,'-')>0 then substring(ITEM,1,instr(ITEM,'-')-1) else ITEM end) as INTEGER)) as RNK,"
+ " PROJID ,TYPE ,ITEM ,WUC ,CHKCHG_NM ,CHKCHG_TM ,"
+ " SITEM ,CHKCHG_TEXT ,PN ,IS_MULTI ,TMBASE1 ,"
+ " TMFEQ1 ,TMUNIT1 ,TMBASE2 ,TMFEQ2 ,TMUNIT2 ,"
+ " PTMVAL1 ,PTMUNIT1 ,PTMVAL2 ,PTMUNIT2 ,REMARK ,"
+ " MKID ,MKDT ,ENG_LR ,HAS_FCHK ,FCHK_VAL ,"
+ " IS_SER ,IS_CANCEL ,CANCEL_REASON "
+ " FROM AMM_CHKCHG A "
+ " WHERE 1=1 ";
沒有留言:
張貼留言