我遇到了我的SQL Server数据库的问题,说实话,我不确定如何描述。因此,我会尽力证明这一点。
我有一个包含多行的表格,[Meter Name]
列中的值为
Electric Meter #140002054 Acct.2013147 House, south mall service &&parking lot
现在,当我运行以下查询时,我得到了我期望的结果。
select distinct [Meter Name]
from Last_PM_Export
where [Meter Name] like 'Electric Meter #140002054 Acct.2013147 House, south mall service%'
请注意,我使用的是%通配符,在“服务”一词后面立即切断搜索模式。我得到以下结果。
Expected result using partial string
同样,这正是我所期待的。没问题。
现在,观察当我扩展模式以包含紧跟在“service”之后的空间时会发生什么。
select distinct [Meter Name]
from Last_PM_Export
where [Meter Name] like 'Electric Meter #140002054 Acct.2013147 House, south mall service %'
Unexpected result using partial string
如您所见,查询不返回任何结果。我也试过查询整个字符串,就像直接从表中复制一样。
select distinct [Meter Name]
from Last_PM_Export
where [Meter Name] like 'Electric Meter #140002054 Acct.2013147 House, south mall service &&parking lot'
结果与上面的查询相同。没有结果。
我想不出有任何理由会发生这种情况。它面对我理解LIKE
运算符的工作方式。我咨询了我们的办公室IT人员,他同意这是不寻常的。
同样,我知道这不是对问题的非常好的描述,但希望示范就足够了。此外,我对于无法更全面地共享表格或数据库表示歉意,但出于保密原因,我不能这样做。
非常感谢任何帮助。谢谢。
答案 0 :(得分:0)
不是答案,而是评论很多......请您确认,这是您问题的确切情况吗?您可以轻松查看,SELECT
都会返回正确的行...
DECLARE @mockup TABLE([Meter Name] VARCHAR(1000));
INSERT INTO @mockup VALUES('Electric Meter #140002054 Acct.2013147 House, south mall service &&parking lot')
,('Electric Meter #140002054 Acct.2013147 House, south mall service &&some other')
,('different');
- 没有空白
SELECT * FROM @mockup
where [Meter Name] like 'Electric Meter #140002054 Acct.2013147 House, south mall service%';
- 空白
SELECT * FROM @mockup
where [Meter Name] like 'Electric Meter #140002054 Acct.2013147 House, south mall service %';
可能会有更多的东西,你为简洁而减少了吗?您是否可以更改上述模拟以使您的问题可以重现?