-2

如果第一行为空,如何在 Sql server 查询中选择第二行。我有 3 张桌子

  1. 用户
  2. 网站
  3. 站点用户

一个用户可以分配到多个站点,一个站点可以有多个用户,但是现在我想为每个站点只获取一个用户,但是如果第一个用户没有以 +01 开头的手机号码,我必须得到第二个分配给该站点的用户,但如果他没有,他也必须选择第三个。请帮忙

4

1 回答 1

0

此查询为每个站点的电话号码以 +01 开头的第一个注册用户提供

select s.name, u.*
from site s
outer apply (
                select top(1) * 
                    from user u 
                    where u.phone like '+01%' 
                    and u.id in (select userId FROM siteUser su WHERE su.SiteId = s.Id)
                    order by u.registrationDate
            ) as u
于 2016-01-19T09:20:42.070 回答