oracle sql中count case函式運用

2022-03-07 08:48:14 字數 4349 閱讀 6506

1樓:匿名使用者

select a.lastname,isnull ( count(1) , 0 )

from hrmresource a, workflow_currentoperator b where a.id=b.userid group by a.

lastname order by 2 desc

改成這個

2樓:匿名使用者

select a.lastname,

(case count(1)is null then 0 else count(1)  end )

from hrmresource a, workflow_currentoperator b

where a.id=b.userid

group by a.lastname order by 2 desc

或者用nvl

select a.lastname,

nvl(count(1),0) cnt

from hrmresource a, workflow_currentoperator b

where a.id=b.userid

group by a.lastname order by 2 desc

3樓:匿名使用者

count 表示的是計數,也就是說記錄的條數,通常和分組函式一起使用。

sql:select userid , count(*) from tablename group by userid。

case表示的是多條件判斷。

sql:select ename,

case

when sal<1000 then 'lower'

when sal>1001 and sal<2000 then 'modest'

when sal>2001 and sal<4000 then 'high'

else 'too high'

endfrom emp;

以上語句就是一個簡單的判斷工資等級的一個case用法。

4樓:mn_話嘮

為什麼 不用 isnull(count(1),0)

這樣就能滿足你的要求,如果還有什麼不明白,可以再追問

oracle函式 動態sql 給count變數賦值

5樓:匿名使用者

雖然你沒問問題,但是我想你大概的意思是動態語句的值怎麼獲取吧。

動態語句裡不能寫into,得放到外面來。這麼寫:

execute immediate p_sql into p_max;

oracle 中 sql 應用case when 提示數字無效問題。高手指點迷津!!!!

6樓:金希澈兮

select sum(case when a.xx = '北京' then '1' else null end)

from table a;

補充du'1' 這裡可以是zhi 1 或者'1',但要求必dao須是數字

回才可以 。 否則就答是無效的數字

7樓:煙忒

寫錯了,case when 列名 = 欄位 then 需要sum的內容 else 0 end

8樓:匿名使用者

欄位名那麼寫成to_number(欄位名)試試,前提是欄位裡儲存的是數字

sql 語句 count 使用請教

9樓:小周子

過多繁瑣的sql影響**質量,及維護成本,以下為兩種小技巧處理方式,僅供參考。

第一種,用case ---when---方法

select id

,sum(case when type in (1,2) then [count] else 0 end) as sum1

,sum(case when type in (3) then [count] else 0 end) as sum2

,sum(case when type in (4,5) then [count] else 0 end) as sum3

from 表名

group by id

第二種,if 判斷

select   sum( goods_amount ) as money,

count( * ) as num,

count(if(pay_status=1,true,null)) as success,

count(if(pay_status=2,true,null)) as fall

from `tab_order_info`

where user_id = 11

10樓:黃老邪傳人

sql count() 語法

sql count(column_name) 語法

count(column_name) 函式返回指定列的值的數目(null 不計入):

select count(column_name) from table_namesql count(*) 語法

count(*) 函式返回表中的記錄數:

select count(*) from table_namesql count(distinct column_name) 語法

count(distinct column_name) 函式返回指定列的不同值的數目:

select count(distinct column_name) from table_name註釋:count(distinct) 適用於 oracle 和 microsoft sql server,但是無法用於 microsoft access。

count()的三種語法中,沒有可以滿足你的條件的,唯一的方法就是使用where,就是你列出的那種

使用count(distinct column_name)語法的話,你的返回值應該是2...

11樓:匿名使用者

下面的幾條語句完成向a表插入10000條c=1,d=2,e=3的記錄:

declare @c int,@d int,@e int,@count int

select @c=1,@d=2,@e=3,@count=10000while @count>0

begin

insert into a表(c,d,e) values(@c,@d,@e)

set @count=@count-1end

12樓:霸王龍

過分發圖服服帖帖讓他人與人

13樓:匿名使用者

count()裡面的引數是某個欄位值

這表是男女混合的資料

不篩選能做麼?

oracle count用法

14樓:匿名使用者

你的a和b沒有寫級聯條件,因此oracle預設做矩陣運算,結果是a*b,當然是兩者乘積。

table a

col f12

table b

col f34

select * from a, b;

結果是---------------------col a.f col b.f

1 3

1 4

2 3

2 4

-----------------

15樓:

那你到底是想做什麼操作。。from後面不加任何條件(比如a.bus_no=b.bus_no)的話就是笛卡爾積相乘(cross join),所以要加條件

oracle,sql語句同一表中同一欄位不同條件count(*) 5

16樓:匿名使用者

樓主抄 這個問題很簡單嘛 就是分組即可

假如第一列字

段是col1 第二列的欄位是col2

select col2,count(1) col1 from tbname

group by col2

17樓:匿名使用者

select substr(abc,1,5),count(*)from tbname

where kprq

group by substr(abc,1,5)

18樓:匿名使用者

select 1,count(*)

from 表名

group by 1

sql中,count的用法,關於SQL中count的用法

count 返回集合中專案的數量 具體數目取決於集合 語法維度 dimensions.count 返回多維資料集中的維度數,其中包括 measures 維度。級別 dimension hierarchy levels.count 返回維度或層次結構中的級別數,包括 all 級別 如果適用 集合 語法...

Oracle SQL中的 與有什麼區別

第一個問題 這兩個都是不等於符號,沒有什麼區別,如果這個欄位有索引,都可以使用的。第二個問題 in 和 not in 都可以使用索引的,但是如果name欄位有很多值,那麼not in的執行時間應該稍微長一點,因為它返回的值比較多。補充 如果name的值比較少的話,in和not in條件嚴密性差不多,...

oraclesql語句中是什麼技術

運用的是oracle 中的雜湊連線,相當於 中的編譯指令,要求oracle按照指定的某種軌則執行,而不是使用預設設定use hash a,b 是其一一種 當記憶體能夠提供足夠的空間時,雜湊 hash 連線是oracle優化器通常的選擇。雜湊連線中,優化器根據統計資訊,首先選擇兩個表中的小表,在記憶體...