1. 程式人生 > >oracle greatest(),least( ) ,coalesce()

oracle greatest(),least( ) ,coalesce()

oracle 一個 gpo 最小 hit lec -- wm_concat 最大

 1 --場景1:
 2 select pt, greatest(wm), least(wm)
 3   from (select s.producttype pt, wm_concat(s.productid) wm
 4           from sys_product s
 5          group by s.producttype)
 6  where pt = 1;
 7 /*
 8 --結果:
 9 1    | 1    17,19,16,15,9,4,3,2,1,14,13,18
10 2    | 2    5,12,11,10,8,7,6
11 --maxt=17,19,16,15,9,4,3,2,1,14,13,18
12 --mint=17,19,16,15,9,4,3,2,1,14,13,18 13 */ 14 --場景2: 15 select greatest(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18,null) maxt, 16 least(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18) mint 17 from dual; 18 --結果:maxt=19 ,mint=1 19 20 /*1. 21 COALESCE 返回該表達式列表的第一個非空value。 22 格式: COALESCE(value1, value2, value3, ...)
23 含義: 返回value列表第一個非空的值。 24 value列表必須是相同類型,也可以是一個表的同一行、不同列的值進行比較。 25 26 */ 27 select coalesce(a,b,c) from ( 28 select 1 as a,A as b,null as c from dual 29 union all 30 select 1 as a,null as b,null as c from dual 31 union all 32 select null as a,null as b,shit as c from dual 33 ) 34 35
/*GREATEST 返回值列表中最大值 36 格式: GREATEST(value1, value2, value3, ...) 37 含義: 返回value列表最大的值。 38 value列表必須是相同類型,也可以是一個表的同一行、不同列的值進行比較。 39 當value值列表中有一個為NULL,則返回NULL值。 40 EXAMPLE: 41 */ 42 select greatest(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18) maxv, --19 43 greatest(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18, null) maxnull, --null 44 least(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18) mint --1 45 from dual; 46 47 48 /* 49 3. LEAST 返回值列表中最小值 50 格式: LEAST(value1, value2, value3, ...) 51 含義: 返回value列表最小的值。 52 value列表必須是相同類型,也可以是一個表的同一行、不同列的值進行比較。 53 當value值列表中有一個為NULL,則返回NULL值 54 */ 55 select greatest(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18) maxv, --19 56 greatest(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18, null) maxnull, --null 57 least(17, 19, 16, 15, 9, 4, 3, 2, 1, 14, 13, 18) mint --1 58 from dual;

oracle greatest(),least( ) ,coalesce()