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