Mysql 、SqlServe、Oracle、DB2、PostgreSQL、Greenplum 常用函数总结
求出某列字段的最大长度
SELECT max ( LENGTH( time ) ) as max_length from result
SELECT MAX ( DATALENGTH( time ) ) FROM result
SELECT max ( LENGTH( time ) ) as max_length from result
PostgreSQL:length('字符串') char_length('字符串')
length()、char_length()只能测字符串的长度,所以不能直接统计列的长度 Greenplum:length('字符串') char_length('字符串')
length()、char_length()只能测字符串的长度,所以不能直接统计列的长度 Db2:使用length()
select max ( length( test1) ) maxlength, min ( length( test2) ) minlength from test
判断非空
Mysql:max()和min()不能筛选null的值,所以我们应该判断如果记录中有null的时候记录的min()应该是0。使用ifnull(column,defaultvalue)
进行判断,如果column的值为null,那么赋给column为0。
select max ( ifnull( length( column1) , 0 ) ) maxlength, min ( ifnull( length( column1) , 0 ) ) minlength from test
Sqlserver:使用isnull()
进行空值的时候赋值
select max ( isnull( datalength( column1) , 0 ) ) maxlength, min ( isnull( datalength( column1) , 0 ) ) minlength from test
Postgresql:不需要判断空值,max() min()
可以计算null的值为0
select max ( test3) maxlength, min ( test3) minlength from test
Greenplum:不需要判断空值,max() min()
可以计算null的值为0
select max ( test3) maxlength, min ( test3) minlength from test
Oracle:使用nvl()
函数,当为空值时候,给空值赋值
select max ( nvl( length( test1) , 0 ) ) maxlength, min ( nvl( length( test1) , 0 ) ) from test
Db2:使用coalesce()
,当该列的内容为空值时候,给空值赋值
SELECT max ( coalesce ( length( column1) , 0 ) ) , min ( coalesce ( length( ( column1) , 0 ) ) FROM test