这个问题出现时,我得到不同的logging计数为我认为是相同的查询一个使用not in where约束和另一个left join 。 not in约束中的表有一个空值(坏数据),导致查询返回0logging的计数。 我有点理解为什么,但我可以用一些帮助完全理解这个概念。 为了简单说明,为什么查询A返回一个结果,但是B不是? A: select 'true' where 3 in (1, 2, 3, null) B: select 'true' where 3 not in (1, 2, null) 这是在SQL Server 2005上。我还发现, set ansi_nulls off会导致B返回一个结果。
LEFT JOIN和LEFT OUTER JOIN什么区别?
从SQL Server中的date时间字段中删除时间部分时哪种方法提供最佳性能? a) select DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0) 要么 b) select cast(convert(char(11), getdate(), 113) as datetime) 第二种方法确实发送了几个字节,但这可能不如转换速度那么重要。 两者似乎都非常快,但在处理数百或数千行时,速度可能会有所不同。 另外,是否有更好的方法来摆脱SQL中的date时间部分?
我需要使用“父”表中的数据更新SQL Server 2005中的这个表,如下所示: 拍卖 id (int) udid (int) assid (int) UD id (int) assid (int) sale.assid包含更新ud.assid的正确值。 什么查询会做到这一点? 我正在考虑join,但我不确定是否有可能。
我如何简单地在SQL中切换行? 有没有简单的命令转置? 即打开这个结果: Paul | John | Tim | Eric Red 1 5 1 3 Green 8 4 3 5 Blue 2 2 9 1 进入这个: Red | Green | Blue Paul 1 8 2 John 5 4 2 Tim 1 3 9 Eric 3 5 1 对于这种情况, PIVOT似乎太复杂了。
什么是插入行的身份的最佳方式? 我知道@@IDENTITY和IDENT_CURRENT和SCOPE_IDENTITY但不明白每个附带的优点和缺点。 有人可以解释一下这些差异,什么时候我应该使用它们?
SELECT GETDATE() 2008-09-22 15:24:13.790 2008-09-22 00:00:00.000我希望没有时间的date部分 我怎么能得到这个?
试图find一些简单的SQL Server PIVOT示例。 我发现的大部分例子都涉及计算或总结数字。 我只是想旋转一些string数据。 例如,我有一个查询返回以下内容。 Action1 VIEW Action1 EDIT Action2 VIEW Action3 VIEW Action3 EDIT 我想用PIVOT(如果可能的话)做出如下结果: Action1 VIEW EDIT Action2 VIEW NULL Action3 VIEW EDIT 这甚至可能与PIVOTfunction?
我正在寻找拆分'1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 …'(逗号分隔)到表或表variables。 有没有人有一个函数返回每一个连续?
我有一个SQL Server 2008 R2列包含一个string,我需要用逗号分隔。 我在StackOverflow上看到了很多答案,但是它们都不适用于R2。 我已经确定我有任何分割函数示例的select权限。 任何帮助不胜感激。