1. 程式人生 > >資料庫的case when 使用例項

資料庫的case when 使用例項

本文作者:蘇生米沿

需求很簡單,我有一個部門和部門的請假申請表。表資料簡單羅列如下:

申請資訊存放在sqxx這張表中,然後存放了zybm和zybm對應的部門資訊,有個部門表bmxx,想查詢開始結束時間間隔為半天的(時差小於4即可)和大於半天的(按一天算)以部門為單位的統計結果,效果如下:

今天學了一個執行語句,順利實現。感覺還是棒棒噠。

select sqbm, (select bmmc from bmxx b where b.bm=a.sqbm) as bmmc,
sum(case when A.hasdata <>'' and timestampdiff(HOUR,kssj,jssj)<=4 then 1 else 0 end) as bt,
sum(case when  A.hasdata <>'' AND timestampdiff(HOUR,kssj,jssj) <=4 then 1 else 0 end) as qt
from clgl_ycsqxx a  group by a.sqbm;

這個語句首先去關聯了部門表,查詢了部門名稱,然後根據日期間隔,case when判斷了小於4小時的記錄個數和大於4小時的記錄個數。最後根據部門分組。

相關推薦

資料庫case...when...then

和C語言中switch...   case1:...   case2:...用途一樣 例如把成績分類別: select 分數,類別=Case WHEN 分數>=85 THEN '優秀'WHEN 分數>=75 THEN '良好'WHEN 分數

資料庫 case when then

select d.rq,d.sjd,count(d.num) as total from (select c.rq,c.sj, case  WHEN '06:01'<=c.sj and c.sj<='06:30' THEN '06:00' WHEN '06:3

mysql 資料庫case..when的使用

eg:(CASE us.sign_method  WHEN '1' THEN '藍芽' WHEN  '2' THEN '照片對比' WHEN  '3' THEN 'RFID'  ELSE '座標定位' END註釋:case後面加欄位名 ,when後面跟資料庫中數字對應的文字表

資料庫case when的用法

考試題考到了,之前沒接觸過所以沒考出來,這裡後來自學了一下,已經成功了。下面給出問題描述浙江大學每門課的績點(GPA)和成績(SCORE)有關,在已知成績的前提下,我們需要得到GPA的資料,我就想到了C

資料庫case when 使用例項

本文作者:蘇生米沿需求很簡單,我有一個部門和部門的請假申請表。表資料簡單羅列如下:申請資訊存放在sqxx這張表中,然後存放了zybm和zybm對應的部門資訊,有個部門表bmxx,想查詢開始結束時間間隔為半天的(時差小於4即可)和大於半天的(按一天算)以部門為單位的統計結果,效

postgresql case when使用例項

建表插入資料 CREATE TABLE test ( ID serial, col INT, NAME VARCHAR (10) ); INSERT INTO test (col, NAME) VALUES (0, 'A'), (0, 'A'), (0, 'A'),

性別欄位在資料庫中儲存數字,查詢時,如何查詢出數字對應的男和女?(case when的應用)

今天敲程式碼的時候,剛好遇到這個問題,寫部落格記一下。 情況如下:性別欄位在資料庫中儲存的是數字,男對應1,女對應0。然後,查詢的時候,我想查詢出男和女兩個字,而不是1和0。 一開始,我寫的sql語句,是直接從查詢出性別對應的數字,sql語句如下: SELECT Em

postgresql case when例項

建表插入資料 CREATE TABLE test ( ID serial, col INT, NAME VARCHAR (10) ); INSERT INTO test (col, NAME)

mysql資料庫group_concat函式內包含case when 語法時的使用

select `a`.`tdorderid`,group_concat('型別:',(case `a`.`td_type` when 'no_goods' then '無貨退款' when 'low_quantity' then '質量退款' when 'no_reaso

SQL語句中CASE WHEN的使用例項

CASE 可能是 SQL 中被誤用最多的關鍵字之一。雖然你可能以前用過這個關鍵字來建立欄位,但是它還具有更多用法。例如,你可以在 WHERE 子句中使用 CASE。首先讓我們看一下 CASE 的語法。在一般的 SELECT 中,其語法如下:SELECT<myColumnSpec>=CASEWHE

資料庫case...when...then...end語句的使用

面試題 媽的今天去面試遇到這麼一道題 都忘記鳥 資料庫表 select username,case when yuwen>=80 then '優秀' when (yuwen<80 and yuwen>=60) then '及格'

Mysql之case when then end語句(附帶例項

這段時間,做專案做累了,好不容易有點個人的學習時間,利用這個小時,總結一下,最近做統計的時候常用的case語句吧。結構:case  when… then …end1.判斷的同時改變其值eg:select OperatorAccount, case    when CreateTime>'

使用case when高階用法對資料庫進行行列轉化 分組、聚合函式使用

看下原來程式碼: 將kpi_name這一列進行在一行顯示 一、不用分組、聚合函式 --測試不用聚合分組函式 select kpi_date, tyt_name, (case when kpi_name='換卡' then kpi_value end ) G4指

CASE WHEN 簡單使用,更換資料庫指定的字串

我是在查詢中遇到了查詢統計的資料統計的結果應該是0,結果用空表示,因此使用到了case when語句。接下來簡單的介紹一下它的用法。 簡單使用:統計結果為null則設定為0 case when a.

Oracle中CASE WHEN的用法例項

    例項演示:   (1)查詢表users中的資料。   select u.id,u.realname,U.SEX from users u;   查詢結果如下   ID    REALNAME SEX   1  10082 鬆XX   2  10084 林XX    

C# Winform Access資料庫Case when語句用法

問題描述:                  在Sql中可以用Case when 語句來進行條件判斷,而在access中此語句被認定為語法錯誤無法應用。                  case when 語句語法                             

case when 函式的使用例項

先簡單說點case函式的概念,case()函式有兩種形式,第一種:                       case  when 條件1 then 結果1                                               when 條件2 the

mysql資料庫case...when...then...end語句的使用

有一張表,裡面有3個欄位:語文,數學,英語。其中有3條記錄分別表示語文70分,數學80分,英語58分,請用一條sql語句查詢出這三條記錄並按以下條件顯示出來(並寫出您的思路): 大於或等於80表示優

Oracle select case when

對比 設計 搜索 性別 primary 忽略 oracl 數據 from Case具有兩種格式。簡單Case函數和Case搜索函數。 --簡單Case函數 CASE sex WHEN ‘1‘ THEN ‘男‘ WHEN ‘2‘ THEN ‘女‘ ELSE ‘

【sql技巧】mysql修改時,動態指定要修改的字段 update `table` set (case when ....) = 1 where id = xx

幫助 ase stack pan 希望 需求 記錄 開始 lec 如果你點進了這篇帖子,那麽你一定遇到了跟我一樣的問題。別看題目的set case when...,我一開始也是第一反應是用case when但是發現並不好使。 問題呢,說得高大上一點:動態指定要修改的字段。