首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回与postgresql的行的连接

返回与postgresql的行的连接
EN

Stack Overflow用户
提问于 2016-09-17 00:51:31
回答 2查看 30关注 0票数 0

在我的桌子上我有这样的情况

代码语言:javascript
复制
|  id    |       book                      | reg   |    cif                       | nm  |    end        | nr |aa | bb  |    type     | 
|12134357|"Lv.2-Registro Geral (matrícula)"|"10001"|"1002414002024400386-90705793"|     |"Ataulfo Alves"|1877|"G"|"102"|             |
|12134356|"Lv.2-Registro Geral (matrícula)"|"10001"|""                            |"RUA"|"Ataulfo Alves"|1877|"G"|"102"|"Apartamento"|
|12134358|"Lv.2-Registro Geral (matrícula)"|"10001"|""                            |""   |"Ataulfo Alves"|    |"" |""   |"Apartamento"|

可以使用一个select(group by book and reg I reg仅返回一行所有信息?如果我使用DISTINCT,她将对每个相等的值进行分组。

结果示例:

代码语言:javascript
复制
|"Lv.2-Registro Geral (matrícula)"|"10001"|"1002414002024400386-90705793"|"RUA|"Ataulfo Alves"|1877|"G"|"102"|"Apartamento"|

tks

EN

回答 2

Stack Overflow用户

发布于 2016-09-17 01:42:26

代码语言:javascript
复制
SELECT book,
       MAX("reg"), 
       MAX("cif"), 
       MAX("nm"), 
       MAX("end"), 
       MAX("nr"),
       MAX("aa"),
       MAX("bb"),
       MAX("type")
FROM  table1
GROUP BY book;

输出

代码语言:javascript
复制
|                              book |                        max |                            max |   max |             max |  max | max |   max |           max |
|-----------------------------------|----------------------------|--------------------------------|-------|-----------------|------|-----|-------|---------------|
| "Lv.2-Registro Geral (matrícula)" | January, 01 10001 00:00:00 | "1002414002024400386-90705793" | "RUA" | "Ataulfo Alves" | 1877 | "G" | "102" | "Apartamento" |
票数 1
EN

Stack Overflow用户

发布于 2016-09-17 01:08:11

我不确定你到底想要做什么,但是下面这个(非常难看的)查询将会找到每个字段的第一个非空值,并一次性返回所有的值:

代码语言:javascript
复制
SELECT
    (SELECT "id"   FROM mytable WHERE coalesce(length("id"   || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "book" FROM mytable WHERE coalesce(length("book" || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "reg"  FROM mytable WHERE coalesce(length("reg"  || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "cif"  FROM mytable WHERE coalesce(length("cif"  || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "nm"   FROM mytable WHERE coalesce(length("nm"   || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "end"  FROM mytable WHERE coalesce(length("end"  || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "nr"   FROM mytable WHERE coalesce(length("nr"   || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "aa"   FROM mytable WHERE coalesce(length("aa"   || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "bb"   FROM mytable WHERE coalesce(length("bb"   || '') > 0, false) ORDER BY id LIMIT 1),
    (SELECT "type" FROM mytable WHERE coalesce(length("type" || '') > 0, false) ORDER BY id LIMIT 1);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39536569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档