在我的 SSMS(我使用的是 18.10)项目中,我对 Intellisense 在我的文件中不起作用这一事实感到沮丧。我猜测这是由于代码库的大小造成的,但事实上,我发现有点奇怪。
在下面的代码中:
CREATE FUNCTION X() RETURNS INT
WITH INLINE = OFF
AS
BEGIN
RETURN 1;
END;
Run Code Online (Sandbox Code Playgroud)
如果我删除WITH INLINE = OFF,Intellisense 会重新打开。到底是怎么回事?
我经常遇到以下问题。我有两张间隔表。它们受日期限制(没有时间部分)。每个表中的间隔不重叠。
开始时间 | 结束时间 |
---|---|
2015-01-03 | 2015-03-02 |
2015-03-05 | 2015-04-01 |
开始时间 | 结束时间 |
---|---|
2015-01-07 | 2015-02-27 |
2015-03-01 | 2015-03-13 |
2016-01-01 | 2016-01-02 |
我想找到两个表的集合差异,即代表第一个表中而不是第二个表中的时间的间隔。
上面的虚拟示例所需的输出:
开始时间 | 结束时间 |
---|---|
2015-01-03 | 2015-01-06 |
2015-02-28 | 2015-02-28 |
2015-03-14 | 2015-04-01 |
即,如果第一个表的日期在下面用黄色标记,并且第二个表的范围用框包围,我将寻找未装箱的黄色日期的连续范围。
我目前将两端都视为包含间隔,并使用 DateTime 作为时间戳。我当前的方法是通过三重自连接(恶心)获取第二个表的补集,然后通过连接将结果与第一个表相交。不好玩。
有更好的方法吗?