ABS()
取數據的絕對值
select abs(-12)
CEIL()
返回大於或等於參數的最小整數。
ceil(double a),
ceil(decimal(p,s) a),
ceiling(double a),
ceiling(decimal(p,s) a),
dceil(double a),
dceil(decimal(p,s) a)
select ceil( 123.75),ceil(12.32)
COALESCE()
返回傳入的參數中第一個非null的值。expre1不為空值則返回expre1;否則判斷expre2是否是空值,如果expre2不為空值則返回expre2;否則判斷expre3是否是空值,如果expre3不為空值則返回expre3;……以此類推,如果所有的表達式都為空值,則返回NULL。
FLOOR()取整,保留整數部分,舍棄小數部分
select FLOOR(123.45),FLOOR(123.67)
而round()函數是:四舍五入
FNV_HASH()
返回從輸入參數派生的一致64位值,以便在應用程序中實現散列邏輯。
計算所有基本數據類型的 64 位 FNV-1a 非加密哈希函數。
返回類型 BIGINT
select FNV_HASH('zhangsan') -7812193430242165695
同一個值得到的是一樣的結果
GREATEST 取多列的最大值
支持的類型有一下幾種:
greatest(bigint a[, bigint b ...]),
greatest(double a[, double b ...]),
greatest(decimal(p,s) a[, decimal(p,s) b ...]),
greatest(string a[, string b ...]),
greatest(timestamp a[, timestamp b ...])
select GREATEST (max( coalesce(cast(user_sex as bigint),0)),max( coalesce(cast(id_card_check_flag as bigint),0))) from sdata.tablename;
least 取多列的最小值
select least (min( coalesce(cast(user_sex as bigint),0)),min( coalesce(cast(id_card_check_flag as bigint),0))) from sdata.tablename;
if(boolean condition, type ifTrue, type ifFalseOrNull)
ifnull(type a, type ifNull)
isnull(type a, type ifNull)
NEGATIVE()
返回帶反轉符號的參數;如果參數已經為負,則返回一個正值。
select NEGATIVE(66), NEGATIVE(-99)
positive(numeric_type a)
返回未改變的原始參數(即使參數是負的)。
select positive(66), positive(-99)
truncate(double_or_decimal a[, digits_to_leave]), dtrunc(double_or_decimal a[, digits_to_leave])
目的:從數值中刪除部分或全部小數。在沒有參數的情況下,刪除所有小數,留下一個整數值。可選參數指定要包含在返回值中的小數位數的數目,並且只適用於參數類型為DECIMAL的情況。truncate()和dtrunc()是同一個函數的別名。
select truncate(3.45) select truncate(3.456,7) 位數不足,會補0
zeroifnull(numeric_expr)
如果數值表達式計算結果為NULL,則返回0,否則返回該表達式的結果。
select zeroifnull(null *1 )