小编arm*_*men的帖子

如何连接到名称在另一个表中存储为值的表?

Ι有一些表(例如[Table1],[Table2],[Table3]等)与[ID]作为主键和一个RecTime作为DATETIME每个.

ΑlsoΙ有一个表[Files],用于保存varbinary(max)列中的文件,并引用具有其名称和ID的其他表.

[Table2],[Table3]和其他人有不同的结构,但完全分享[ID][RecTime][Table1]

以下是可视化数据的快速示例.

DECLARE @Table1 as table (
      [ID] [bigint]
    , [RecTime] [datetime]
)
DECLARE @Table2 as table (
      [ID] [bigint]
    , [RecTime] [datetime]
)
DECLARE @Table3 as table (
      [ID] [bigint]
    , [RecTime] [datetime]
)

DECLARE @Files as table (
      [ID] [bigint]
    , [tblName] nvarchar(255) NULL
    , [tblID] bigint NULL
    , [BinaryData]  varbinary(max)
    /* …
Run Code Online (Sandbox Code Playgroud)

sql sql-server cursors dynamic-sql sql-server-2012

24
推荐指数
3
解决办法
2976
查看次数

sql:重复行和所有相关行

我有以下 3 个相关表

Schools           Departments          Classes
---------------   ------------------   -----------------
ID                ID                   ID
School_Name       ID_Schools           ID_Departments
                  Department_Name      Class_Name
Run Code Online (Sandbox Code Playgroud)

和一些关于它们包含的内容的样本(我会尽可能地画出来)

---- Schools ---
ID   School_Name
----------------
 1   School_1  <----------------------\
 2   School_2                         |
 n   ........                         |
                                      |
---- Departments ----------------     |
ID   ID_Schools   Department_Name     |
---------------------------------     |
 1            1   Dept_1  <-----------/ -->--\
 2            1   Dept_2  <-----------/ -->--|------\
 3            2   Dept_1                     |      |
 n           ..   ......                     |      |
                                             |      |
---- Classes -------------------             |      |
ID   ID_Departments   Class_Name             |      |
--------------------------------             |      |
 1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2012

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

获得下一个最小值,大于或等于每个组的给定值

给出以下表1:

    RefID  intVal  SomeVal
    ----------------------
        1      10    val01
        1      20    val02
        1      30    val03
        1      40    val04
        1      50    val05
        2      10    val06
        2      20    val07
        2      30    val08
        2      40    val09
        2      50    val10
        3      12    val11
        3      14    val12
        4      10    val13
        5     100    val14
        5     150    val15
        5    1000    val16
Run Code Online (Sandbox Code Playgroud)

和Table2包含一些RefID和intVals之类的

    RefID  intVal
    -------------
        1      11    
        1      28    
        2       9    
        2      50    
        2      51    
        4      11    
        5       1    
        5     150    
        5     151    
Run Code Online (Sandbox Code Playgroud)

需要一个SQL语句来获取每个RefID的下一个更大的intValue和NULL,如果在Table1中找不到,则下面是预期的结果

    RefID  intVal  nextGt  SomeVal …
Run Code Online (Sandbox Code Playgroud)

sql greatest-n-per-group sql-server-2012

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

SQL如何检索两个给定日期之间的中间点?

我有两个约会:

2012-10-04 12:48:56:0002012-10-04 12:48:58:000

预期的结果是
2012-10-04 12:48:57:000


2012-10-04 12:48:56:0002012-10-04 12:48:56:010

预期的结果是
2012-10-04 12:48:56:005

(日期是虚构的,因为在sql server中,毫秒部分DATETIME数据类型增加3)

sql sql-server

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

SQL:如何查找叶子行?

我有一个自我相关的表myTable像:

ID | RefID
----------
 1 | NULL
 2 | 1
 3 | 2
 4 | NULL
 5 | 2
 6 | 5
 7 | 5
 8 | NULL
 9 | 7
Run Code Online (Sandbox Code Playgroud)

我需要在任何深度上获得叶子行

根据上表,结果必须是:

ID | RefID
----------
 3 | 2
 4 | NULL
 6 | 5
 8 | NULL
 9 | 7
Run Code Online (Sandbox Code Playgroud)

谢谢

PS:深度可能会有所不同,这里的例子非常小

以下是样本数据的直观演示

sql sql-server sql-server-2012

5
推荐指数
2
解决办法
2567
查看次数