如何区分sql中的小写和大写字母

时间:2016-02-23 19:44:29

标签: sql sql-server reporting-services

我有查询找出我的数据中的重复项,但该查询也遇到了不重复的数据但我的查询认为它是重复的,因为我的查询读取它们相同。例如' AABWcFABmAAAyWJAAb'和' AABWcFABmAAAyWJAAB'但实际上它们是唯一的,因为这两个id都包含不同的数据。我使用了Collat​​e功能,但它没有帮助。如果有我可以使用的任何内置功能或任何逻辑,请告诉我。 提前感谢您的帮助。

select distinct 
    npa
    ,npanxx_row_id
    ,count()
from kjm.audit_309 
where npanxx_row_id 
COLLATE Latin1_General_CS_AS in (npanxx_row_id) --and NPANXX_ROW_ID = 'AABWcFABmAAAyWJAAB' 
group by npa,npanxx_row_id 
having count() >1 
order by npa 

3 个答案:

答案 0 :(得分:2)

SQL Server中的另一个选项可能是BINARY_CHECKSUM()。这将检测案例中的差异。

select 

your_column
, BINARY_CHECKSUM(your_column)
, COUNT(*)

FROM your_table

GROUP BY 
your_column
, BINARY_CHECKSUM(your_column)

HAVING count(*) >1

答案 1 :(得分:1)

如果你正在寻找重复项,那么这应该有效:

req.user

答案 2 :(得分:0)

如果您想使用DISTINCT,您已将排序规则置于错误的位置。

以下内容适用于SQL Server:

SELECT DISTINCT 
    (ColumnName) COLLATE sql_latin1_general_cp1_cs_as 
From TableName

但是整理可能会有所不同,从RDBMS到RDBMS。