SQL Server-如何将精确的字符串与外来字符匹配

SQL Server-如何将精确的字符串与外来字符匹配,sql,sql-server,Sql,Sql Server,我有一个表,其列类型为nvarchar(max)。其中包含如下数据: 15583319|ግሩም 但是,当试图查询像这样的精确匹配时,它不会返回任何内容 select * from clean..newkeymaster where fieldid = 4 and value like N'15583319|ግሩም' select * from clean..newkeymaster where fieldid = 4 and value = '15583319|ግሩም

我有一个表,其列类型为
nvarchar(max)
。其中包含如下数据:

15583319|ግሩም  
但是,当试图查询像这样的精确匹配时,它不会返回任何内容

select * 
from clean..newkeymaster 
where fieldid = 4 
  and value like N'15583319|ግሩም'

select * 
from clean..newkeymaster 
where fieldid = 4 
  and value = '15583319|ግሩም'
当我连接两个独立表中的两列时,如何使查询能够匹配此字符串。保存上述数据的一个是所述的
nvarchar(max)
,另一个是
nvarchar(255)
。像这样的

from #temp t
inner join #temp2 e on e.tvalue = t.tvalue

tempdb和数据库之间的排序规则很可能不同

SELECT name, collation_name 
FROM sys.databases
WHERE name IN ('tempdb', 'your_db_name')
您可以使用explicit提供与数据库相同的排序规则名称:

from #temp t
inner join #temp2 e on e.tvalue = t.tvalue COLLATE ...

听起来像是编码问题。存储数据的表是否使用与客户端相同的编码?检查两侧的编码并将它们添加到问题中。您使用的是什么数据库管理系统?SQL Server?提问并添加标记。这是一个Sql Server数据库,我正在使用enterprise manager在数据库计算机上编写查询。TempDb和我正在查询的数据库都设置为Sql\u Latin1\u General\u CP1\u CI_AS@ster此特定表上的列可能定义了不同的排序规则。表中的两个字段都是我的临时表是从具有相同排序规则的。SQL拉丁语1\u General\u CP1\u CI\u我只是四处玩玩,我试着整理拉丁语1\u General\u 100\u BIN2,结果找到了一行。你能给我解释一下为什么会这样吗?它会扰乱我的其他行的匹配吗?这些行在我的示例中不是这种语言?