oracle分組排序+建表無效字元+按固定順序排序
阿新 • • 發佈:2019-02-08
一、oracle分組後排序,取每組第一條資料
根據COL1欄位分組,然後每組按COL2排序取最大的那一條
SELECT *
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY COL1 ORDER BY COL2 DESC) rn,
test1.*
FROM test1)
WHERE rn = 1 ;
二、建表包含特定字元(無效的字串)
用""號把特殊欄位的字元包起來,即可--create table
create table test111
(A varchar2(20),
"access" varchar2(20),
B varchar2(20)
)
comment on column test111.A
is 'A';
comment on column test111."access"
is 'A';
comment on column test111.B
is 'B'; ORACLE呼叫時:select T."ACCESS" from OCRM_F_PD_PROD_INFO t 三、按照固定值的排序:Oracle中排序如何指定某些值在最前或最後
方法一:
select * from test_table
order by decode(col1,'3','1','1','2','4','3','2','4')
替換後的數字可以自己選,保證順序即可
方法二:
select * from test_table
order by replace(id,'4','1')
但replace每次只能替換一種,需要巢狀replace如replace(replace(...)...)
方法三:
使用迴圈(for,case都可以) order by case when '3' then '1' when '1' then '2'
case when '4' then '3' when '2' then '4'
end as col