小编mhs*_*kar的帖子

如何选择两个日期与下一行和上一行之间的行

我有一个具有以下结构的表

ID  PersonID    Date
---------------------------
1   1           2017-04-01
2   1           2017-04-15
3   1           2017-05-13
4   1           2017-06-15
5   1           2017-08-13
6   1           2017-10-02
7   2           2017-05-04
8   2           2017-09-16
9   3           2017-04-23
10  3           2017-07-06
11  4           2017-06-01
Run Code Online (Sandbox Code Playgroud)

如果存在,我希望Select在每个Next和Previous行之间2017-05-01和之间行.2017-08-26PersonID

我想要这个结果:

ID  PersonID    Date
------------------------------
2   1           2017-04-15
3   1           2017-05-13
4   1           2017-06-15
5   1           2017-08-13
6   1           2017-10-02
7   2           2017-05-04
8   2           2017-09-16
9   3           2017-04-23
10  3           2017-07-06
11  4           2017-06-01
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2016

3
推荐指数
1
解决办法
144
查看次数

当子句不匹配时如何从SQL Server图形表中选择

我在SQL Server中使用图表。

这是我的桌子:

--Node Table
CREATE TABLE [dbo].[Users]
(
    [ID] [int] NOT NULL Primary key,
    [FName] [nvarchar](100) NULL,
    [LName] [nvarchar](100) NULL
)AS NODE
--Edge Table
CREATE TABLE [dbo].[FriendsOf] AS EDGE
Run Code Online (Sandbox Code Playgroud)

如何选择User2的所有User1朋友和User2是User3的朋友,而User1和User3之间没有直接Edge关系。

我可以这样写这个查询:

 select distinct 
     u1.FName + ' ' + u1.LName as FirstFullName, 
     u2.FName + ' ' + u2.LName as SecondFullName,
     u3.FName + ' ' + u3.LName as ThirdFullName
 from
     Users u1, FriendsOf fo1, Users u2, FriendsOf fo2, Users u3
 where 
     match(u1-(fo1)->u2-(fo2)->u3) 
     and not exists(select 1 from friendsof fof …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2017 sql-server-2017-graph

1
推荐指数
1
解决办法
153
查看次数