idea中幾個常用的sql語句

2021-09-29 21:19:29 字數 3927 閱讀 5516

idea中的xml檔案中幾個常用的sql語句

1,模糊搜尋

and 「你的變數」 like concat('%',#,'%')

2,正則判斷字串獲取最大值

select

max(r.number)

from

表名 r

where

r.is_deleted = '0'

and (r.number regexp '[^0-9.]') = 0

and length(r.number) = 10

3,分組排序

select a.reporting_id,count(*) from 表名 a group by a.reporting_id order by count(*) desc;

select a.number,count(*) from 表名 a group by a.number order by count(*) desc;

4,簡單的查表

可能是根據id獲取:

model名字  secret = baseinfoservice.getmodelbyid(dto的名字.getreportingsecretid());

然後直接只用即可,我把他們放到了乙個map了

lindkedonemap.put("secret", secret == null?"":secret.getname());

也可能是根據modle獲取:

new乙個,賦值,把modle放進去

model名字  syscode = new model名字();

syscode.setcode(dto名字 .getreportingmethodcode()); 

syscode.setdeleted(false);

syscode = syscodeservice.getmodelbymodel(syscode);

5,增加乙個特殊條件

從1到17位,包含 *** 的:

and '*** ' = substr(獲取的欄位名  from 1 for 17)

6,按照時間段查詢

10到20天的

date_sub(curdate(), interval 20 day) <= sc.process_time

and date_sub(curdate(), interval 10 day) >= sc.process_time

7,使用union時

(1)兩個或者多個聯合是,查詢的字段要一致

(2)如果需要求和,需要呼叫函式 sum(s.count),裡面的就是需要求和的字段。

8,group by

就是對查出的資料進行分組,如果需要進行求和的話。需要增加函式count。

9 ,count() 和 sum() 的區別

count()是算行數的,sum是求和的

(1)count()是求一列中有多少行。通常和group by一起使用

(2)sum是求和,把一列中的數字相加。注意的是,這一列必須都是數字,否則無法相加。

10,間隔時間的選擇

(1)a-b 的時間為  10-20   (2)我們的時間為三種:1-11,11-12,12-21,1-30  交叉時間。

11,擷取字串

select left(字段,8),right(字段,4) from 表  left表示從左邊擷取,裡面的8表示到第幾位。right反之

12,查詢時把某個字段結合,以「,」分開

select

pro.problem_code                                 procode,

group_concat(rep.reporting_id)      reportingids,  

count(0)                                              amount

from

表名 rep

inner join 表名 pro on  條件

and 條件

group by

字段主要用到的方法:  group_concat(rep.reporting_id) ,就是把rep.reporting_id以都要結合在一起

注釋:如果需要去重的時候,可以加上 distinct     group_concat(distinct  lev.reportingids) reportingids

就可以把裡面重複的資料去掉。

13,把三行轉成一行

select

a.reporting_id,

max(case b.problem_code when '欄位名1' then b.problem_code else '' end) as probemcode1,

max(case b.problem_code when '欄位名2' then b.problem_code else '' end) as probemcode2,

max(case b.problem_code when '欄位名3' then b.problem_code else '' end) as probemcode3

from

表名 a

left join 表名 b on a.reporting_id = b.reporting_id

where

a.reporting_id = '71f30da545a943e7a23803461514b399'

group by a.reporting_id

正常來說,如果不加聚合函式,那麼顯示的只有一條資料。如果不加 group by 那麼顯示三條。達不到預期的效果。加了聚合函式。就能把三行變成一行。

14,根據時間判斷是第幾季度

select quarter('2019.09.02') from dual;

15,字串擷取之 substring_index

substring_index(str,delim,count)

str:要處理的字串

delim:分隔符

count:計數

例子:str=

www.wikibt.com

substring_index(str,'.',1)

結果是:www

substring_index(str,'.',2)

結果是:

www.wikibt

也就是說,如果count是正數,那麼就是從左往右數,第n個分隔符的左邊的全部內容

相反,如果是負數,那麼就是從右邊開始數,第n個分隔符右邊的所有內容,如:

substring_index(str,'.',-2)

結果為:

wikibt.com

有人會問,如果我要中間的的wikibt怎麼辦?

很簡單的,兩個方向:

從右數第二個分隔符的右邊全部,再從左數的第乙個分隔符的左邊:

substring_index(substring_index(str,'.',-2),'.',1);

16,某乙個字段是否包含乙個字段

select * from

表名awhere

instr(a.problem_code,'欄位名') > 0

常用的幾個SQL 查詢語句

記錄新增 insert into 表名 欄位1,欄位2 values 值1,值2 insert into tbclass classname values 測試1 insert into tbclass classname values 測試2 insert into tbclass classna...

幾個經典的sql語句

1.關於group by的sql語句 表結構 sql的寫法 select year,select amount from test as m where month 1 and test.year m.year as m1,select amount from test as m where mon...

幾個常用的SQL

一 刪列 alter table 表名 drop column column b hana中 alter table 表名 drop 欄位名 二 增列 alter table 表名 add 列名 varchar 20 hana中 alter table schema1 table1 add crea...