DB2返回第一个匹配项

戴夫·斯拉什

在V6R1的DB2 for i(又名DB2 / 400)中,我想编写一条SQL SELECT语句,该语句返回标头记录中的某些列,以及仅匹配的详细记录中的一个列。它可以是任何匹配的记录,但我只想要其中一个的信息。我可以通过下面的查询来完成此操作,但我认为必须有一种比使用WITH子句更简单的方法。我会在需要时使用它,但我一直在思考:“必须有一种更简单的方法”。本质上,我只是从Person表中返回firstName和lastName……再加上PersonEmail表中匹配的电子邮件地址之一。

谢谢!

    with theMinimumOnes as (
    select personId,
           min(emailType) as emailType  
      from PersonEmail
     group by personId
    )
    select p.personId,
           p.firstName,
           p.lastName,
           pe.emailAddress
      from Person p
      left outer join theMinimumOnes tmo
        on tmo.personId = p.personId
      left outer join PersonEmail pe
        on pe.personId = tmo.personId
       and pe.emailType  = tmo.emailType

    PERSONID   FIRSTNAME                       LASTNAME                        EMAILADDRESS
           1   Bill                            Ward                            [email protected] 
           2   Tony                            Iommi                           [email protected] 
           3   Geezer                          Butler                          [email protected] 
           4   John                            Osbourne                        -           
戈登·利诺夫(Gordon Linoff)

这听起来像是一项工作row_number()

select p.personId, p.firstName, p.lastName, pe.emailAddress
from Person p left outer join
     (select pe.*,
             row_number() over (partition by personId order by personId) as seqnum
      from PersonEmail pe
     ) pe
     on pe.personId = tmo.personId and seqnum = 1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

HtmlAgilityPack仅返回第一个匹配项

来自分类Dev

preg_match仅返回第一个匹配项

来自分类Dev

正则表达式仅返回第一个匹配项

来自分类Dev

mysql查询返回每个结果的第一个匹配项

来自分类Dev

Ruby str.match(regex)返回仅包含第一个匹配项的MatchData

来自分类Dev

返回Java 8流中的第一个匹配项(类似于_.find)

来自分类Dev

按字段值返回第一个匹配项的数组

来自分类Dev

pcregrep如何强制返回正则表达式的第一个匹配项

来自分类Dev

Bash grep不返回第一个正则表达式匹配项

来自分类Dev

Python re.findall仅返回第一个匹配项

来自分类Dev

返回Java 8流中的第一个匹配项(类似于_.find)

来自分类Dev

python正则表达式,只返回第一个匹配项

来自分类Dev

PyQuery-attr match仅返回第一个匹配项,而不是所有匹配项

来自分类Dev

仅当存在匹配项时才返回true,但不是第一个匹配项

来自分类Dev

sed更改另一个匹配项的第一个匹配项

来自分类Dev

仅子查询第一个匹配项

来自分类Dev

仅删除sed的第一个匹配项

来自分类Dev

NSPredicate仅查找第一个匹配项

来自分类Dev

XSLT选择第一个匹配项

来自分类Dev

仅打印第一个匹配项

来自分类Dev

提取符合sed的第一个匹配项

来自分类Dev

正则表达式-返回引用以匹配完全匹配的第一个匹配项

来自分类Dev

如何返回匹配键值的第一个?

来自分类Dev

Django __in,但返回第一个匹配的元素

来自分类Dev

返回第一个匹配的行

来自分类Dev

获取第一个匹配的元素,如果没有匹配项,则获取第一个?

来自分类Dev

扩展grep以在第一个匹配项之后找到匹配项

来自分类Dev

取得一个正则表达式文件,然后在另一个文件中返回每个文件的第一个匹配项

来自分类Dev

如果可能,find_by是否总是将匹配项返回到条件数组的第一个?

Related 相关文章

  1. 1

    HtmlAgilityPack仅返回第一个匹配项

  2. 2

    preg_match仅返回第一个匹配项

  3. 3

    正则表达式仅返回第一个匹配项

  4. 4

    mysql查询返回每个结果的第一个匹配项

  5. 5

    Ruby str.match(regex)返回仅包含第一个匹配项的MatchData

  6. 6

    返回Java 8流中的第一个匹配项(类似于_.find)

  7. 7

    按字段值返回第一个匹配项的数组

  8. 8

    pcregrep如何强制返回正则表达式的第一个匹配项

  9. 9

    Bash grep不返回第一个正则表达式匹配项

  10. 10

    Python re.findall仅返回第一个匹配项

  11. 11

    返回Java 8流中的第一个匹配项(类似于_.find)

  12. 12

    python正则表达式,只返回第一个匹配项

  13. 13

    PyQuery-attr match仅返回第一个匹配项,而不是所有匹配项

  14. 14

    仅当存在匹配项时才返回true,但不是第一个匹配项

  15. 15

    sed更改另一个匹配项的第一个匹配项

  16. 16

    仅子查询第一个匹配项

  17. 17

    仅删除sed的第一个匹配项

  18. 18

    NSPredicate仅查找第一个匹配项

  19. 19

    XSLT选择第一个匹配项

  20. 20

    仅打印第一个匹配项

  21. 21

    提取符合sed的第一个匹配项

  22. 22

    正则表达式-返回引用以匹配完全匹配的第一个匹配项

  23. 23

    如何返回匹配键值的第一个?

  24. 24

    Django __in,但返回第一个匹配的元素

  25. 25

    返回第一个匹配的行

  26. 26

    获取第一个匹配的元素,如果没有匹配项,则获取第一个?

  27. 27

    扩展grep以在第一个匹配项之后找到匹配项

  28. 28

    取得一个正则表达式文件,然后在另一个文件中返回每个文件的第一个匹配项

  29. 29

    如果可能,find_by是否总是将匹配项返回到条件数组的第一个?

热门标签

归档