【问题标题】:SQL execution returns different results than execution directly in MS SQL Server Management StudioSQL 执行返回的结果与直接在 MS SQL Server Management Studio 中执行不同
【发布时间】:2019-02-25 06:56:53
【问题描述】:

我对 SQL 很困惑,所以也许我做错了什么。

我正在尝试构建一个查询,该查询将显示来自多个 SELECT 的结果。代码很简单,但大体上是这样的:

将结果写入 sql 文本选项

select  MessageId from   NsDelivery..NudgeResponseDump (NOLOCK) where Pk_RowId = 28901649

输出

0:1550774328341685 9d012f009d012f

将结果输出到 sql 文本选项

    select  MessageId from   NsDelivery..NudgeResponseDump (NOLOCK) where Pk_RowId = 28901649

输出

0:1550774328341685

我不知道为什么第二个选项中缺少字符串数据,请给我有效的解释...

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008 sql-server-2012


    【解决方案1】:

    我猜在字符串的两个部分(不是NULL 值,而是CHAR(0))之间有一个空字符(又名空终止符)。此字符会导致字符串在结果中被截断为网格模式。有一些信息here。 本质上,字符串的最后一部分在那里,但在可视化中,由于空字符而被截断。您可以通过将字符串转换为VARBINARY 来测试它,空字符将显示为00。

    【讨论】:

      猜你喜欢
      • 2010-10-31
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多