当我使用此查询时:
SELECT TOP 20
f.name as f_firm_name
FROM Firm f
WHERE f.id_city = '73041' COLLATE SQL_Latin1_General_Cp1251_CI_AS
ORDER BY f.name ASC
我得到这些结果:
f_firm_name
--------------------------------
SKY LINE STUDIO
АНТИКВАРНЫЙ САЛОН
БИЗОН УЛЬЯНОВСК
ВЕРТЕКС ЗАО
ВОЗРОЖДЕНИЕ+
ВОЛГАСПЕЦТЕХНОЛОГИИ
ГП СЕРВИС
Данилов А.Б.ИП
ИНИКОМ
ИП МАЛАШИН В.Б.
ИП СУЛАГАЕВ АНДРЕЙ
(20 row(s) affected)
但是,如果我使用此查询:
SELECT TOP 20
f.name as f_firm_name
FROM Firm f
WHERE f.id_city='73041'
AND f.name LIKE 'ВЕРТЕКС ЗАО%' COLLATE SQL_Latin1_General_Cp1251_CI_AS
ORDER BY f.name ASC
我得到这些结果:
f_firm_name
-----------------
(0 row(s) affected)
如果在第一个查询中获得
0 rows
并使用该结果在第二个查询中进行搜索,为什么我会得到f.name
? 最佳答案
可能是f_firm_name
中的第一个字符-是空格。
所以试试这个-
SELECT TOP 20 f_firm_name = f.name
FROM dbo.Firm f
WHERE f.id_city = '73041'
AND LTRIM(f.name) LIKE 'ВЕРТЕКС ЗАО%' --<--
COLLATE SQL_Latin1_General_Cp1251_CI_AS
ORDER BY f.name
关于sql-server - SQL Server : why are there no rows found?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16938022/