SQL Server相同的字符串但结果不同,为什么?

时间:2018-05-08 23:31:53

标签: sql sql-server

我正在尝试为原型创建查询但似乎无法使其工作。我不知道。使用Express Profiler捕获第一个查询。第二个查询只是一个副本,并从第一个查询粘贴。唯一的区别是在第二个查询中我直接从数据库中的行复制/粘贴了param值。为什么这两个查询会返回不同的结果?

我确实在发布之前更改了查询,因此请忽略我可能错过的任何小错误。我这样做是为了删除客户特定的细节。

exec sp_executesql N'SELECT DISTINCT COUNT(*)
                     FROM [Test_Import] 
                     WHERE CONCAT(Name, '' -- '', City, '', '', State, '', '', Zip) = 
                      @Info', N'@Info nvarchar(49)',
                      @Info=N'LLC -- Morganton, NC, 28655'
go

exec sp_executesql N'SELECT DISTINCT COUNT(*)
                     FROM [Test_Import] 
                     WHERE CONCAT(Name, '' -- '', City, '', '', State, '', '', Zip) = 
                      @Info', N'@Info nvarchar(49)',
                      @Info=N'LLC -- Morganton, NC, 28655'
go

插入值

INSERT INTO [dbo].[Test_Import] ([Name], [City], [State], [Zip])
VALUES ('LLC', 'Morganton', 'NC', '28655')

创建表

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Test_Import]
(
    [Name] [varchar](200) NULL,
    [City] [varchar](200) NULL,
    [State] [varchar](200) NULL,
    [Zip] [varchar](200) NULL
) ON [PRIMARY]
GO

SET ANSI_PADDING OFF
GO

1 个答案:

答案 0 :(得分:1)

检查参数下方是否有任何隐藏字符 你可以通过将这个sql复制并粘贴到Notepad ++中来实现 从记事本++菜单转到视图 - >显示符号 - >显示所有字符

这将帮助您找出差异