class12 使用函式建立新的輸出字段

2022-06-27 10:21:16 字數 3079 閱讀 2753

定義:函式:根據輸入,按照既定的邏輯返回預期的結果。

常見的函式分類:

函式分類

示例數值函式

型別轉換函式、絕對值函式、指數函式。。。

文字函式

拼接函式、擷取函式、轉換函式。。。

日期和時間函式

格式化函式、擷取函式、系統日期。。。

ps:不同的資料庫,函式名及引數差別較大。使用時以具體的資料庫說明文件為準。

常見數值函式

函式作用

示例abs(n)

返回n的絕對值

abs(-3) = 3

round(n,d)

返回n的四捨五入值,保留d位小數

round(3.234,2) = 3.23

rand()

返回0~1之間的隨機數

rand()可能返回0.2511382673

pow(x,y)

返回x的y次冪

pow(2,3) = 8

mod(m,n)

返回m除以n的餘數

mod(7,3) = 1

三角函式

實現三角運算的函式,如sin,cos,tan等

sin(90) = 0.89399666360055785

比如:如何從**交易明細表中返回正數的交易數量?

如何從**交易明細表中返回交易費用(只保留2位小數字)?

select volume,abs(volume) from t_stock_trans_dtl;

select fee,2,round(fee,2) from t_stock_trans_dtl;

常見文字函式

函式作用

示例length(str)

返回字串str的長度

length('abced') = 5

left(str,n)

返回字串的左端n個字元

left('abcde',3) = 'abc'

right(str,n)

返回字串str的右端n個字元

right('abcde',3) = 'cde'

trim(str)

刪除str左右兩邊的空格

trim(' abc ') = 'abc'

upper(str)

將字串str轉換為大寫

upper('abc') = 'abc'

lower(str)

將字串str轉為小寫

lower('abc') = 'abc'

substring(str,m,n)

返回從字串str第m位後面的n個字元

substring('abcde',2,3) = 'bcd'

instr(str1,str2)

返回字串str2在str1中首次出現的位置

instr('foobarbar','bar') = 4

concat(str1,str2)

返回字串str1,str2,……, 按順序拼接後結果

concat('abc','defg','h') = 'abcdefgh'

substring(str,m,n) : mysql的位置從1開始算起,不是0!!!

比如:如何根據**交易明細表中的****,返回**所在的**交易所?

select stock_code,left(stock_code,2) from t_stock_trans_dtl;

select stock_code,substring(stock_code,1,2) from t_stock_trans_dtl;

常見日期和時間函式。

注意:這個函式在不同資料庫使用方法差別較大

函式作用

示例current_date()

返回當前日期

current_date()可能的返回值'2020-05-15'

current_time()

返回當前時間

current_time()可能的返回值'12:34:10'

year(date)

返回日期date所在的年份

year('2020-05-15') = 2020

month(date)

返回日期date所在的月份

year('2020-05-15') = 5

day(date)

返回日期date所在的日期

year('2020-05-15') = 15

hour(date)

返回日期date所在的小時

hour('12:34:10') = 12

minute(date)

返回日期date所在的分鐘

minute('12:34:10') = 34

dayofyear(date)

返回date是當年的第幾天

dayofyear('2020-05-15') = 136

dayofmonth(date)

返回date是當月的第幾天

dayofmonth('2020-05-15') = 15

dayofweek(date)

返回date是當周的第幾天 (第1天是週日)

dayofweek('2020-05-15') = 6

date_format(date,格式)

返回date格式化後的結果

date_format(current_date(),'%y') = 2020

比如:如何返回**交易明細表中交易日期(只返回年月日,去掉時分秒?)

select opt_tm,date_format(opt_tm,%y-%m-%d') from t_stock_trans_dtl

比如:如何根據**交易明細表中的****,返回**所在的**交易所(要求返回大寫字母)?

select stock_code,upper(left(stock_code,2)) from t_stock_trans_dtl

class10 建立新的輸出字段

比如 資料庫中數量的單位是股,如何轉換為手 一手 股 後輸出?如何根據 交易表中的單價 數量,計算出交易金額?數量 股轉換成手 select trans id,stock name,stock code,volume 100 from t stock trans dtl 計算交易金額 select ...

使用新的vs建立物件

在執行任務期間,我看到其他開發人員,他們使用 allargsconstructor access accesslevel.private 建立了乙個類,該類使該類的建構函式私有.然後,他們使用代替建立乙個物件.使用new和of建立之間有什麼區別?a a new a a a a.of allargsc...

使用Flex Bison建立新的程式語言

對原始檔進行掃瞄,將原始檔的字元流拆分分乙個個的詞 記號 此為詞法分析 根據語法規則將這些記號構造出語法樹,此為語法分析 對語法樹的各個節點之間的關係進行檢查,檢查語義規則是否被違背,同時對語法樹進行必要的優化,此為語義分析 遍歷語法樹的節點,將各節點轉化為中間 並按特定的順序拼裝起來,此為中間 生...