计算多列的字符数

时间:2015-01-26 15:18:04

标签: postgresql char

我有一个包含15列(文本)的表 我用char_length计算每列的字符数,并将其存储在视图中。现在我想总结一下这些结果。 在表的某些字段中,当前没有文本,因此这些字段为NULL /空。如果我现在对视图(整数)的结果字段求和,则只计算填充所有15列的行。

SELECT C1+C2+...+C15 FROM view; 

我也试过这些方法(不使用视图):

SELECT char_length(C1)+char_length(C2)+...+char_length(C15) FROM T1; 
SELECT char_length(C1||C2||...||C15) FROM T1; 

如何计算多列(每行)的字符数?即使某些列目前尚未填充。

1 个答案:

答案 0 :(得分:4)

concat()函数会将NULL值视为空字符串:

select char_length(concat(c1, c2, c3, c4, c5))
from t1;

它还会隐式地将任何非字符值转换为字符串,因此即使其中一列是例如integer这将有效。