分组依次选择不是“空”字段

时间:2012-11-10 14:03:08

标签: mysql

在非规范化的表结构中,我需要为每个邮政编码选择第一个非空(长度!= 0而不是空)列。

表格布局(两列均为text):

| ZIP   | Contact | ...
| 69123 |         | 
| 69123 | WS      | 
| 54516 | null    | 
| 54516 | CS      | 
| 72226 | RH      | 
| 72226 | PH      | 

结果应如下所示:

| ZIP   | Contact | ...
| 69123 | WS      | 
| 54516 | CS      | 
| 72226 | RH      | 

这样的事情:

SELECT ZIP, fristNotEmpty(Contact) 
FROM masterdata GROUP BY ZIP

1 个答案:

答案 0 :(得分:4)

SELECT ZIP, 
       min(Contact)
FROM masterdata
where Contact is not null and length(Contact) > 0
GROUP BY ZIP