2010-11-18 4 views
0

:데이터베이스 기본 데이터 정렬과 다른 데이터 정렬로 기호를 비교하는 방법은 무엇입니까? 내 다른 질문에 대한 답변을 Subquestioning

어떻게 더 나은 명시 적으로 기본 데이터베이스 데이터 정렬에서 다른 데이터 정렬을 사용하여 2 (비 N ') 문자를 비교?

업데이트 : I는

  • A는 동일

    use dbName; 
    --here I alternated different db names with different collations 
    
    declare @s1 nchar(1)='à' 
    declare @s2 nchar(1)='a' 
    select 
        case 
        when @s1 <> @s2 Then 'a is NOT equal à' 
        else 'a is equal to à' 
        end 
    collate latin1_General_CS_AS 
    

    출력) I 데이터베이스로부터 추출한 값 CHAR() 또는 VARCHAR를 (비교 S1 및 @ S2 @ 변수에 넣어해야 (LATIN1_General_CI_AI의 기본 데이터 정렬과 데이터베이스)를하는 것은

  • a는 LATIN1_General_CI_AS와 DB에 동일한는 (NOT입니다

답변

2

당신은 어떻게 문자열을 대조하는 대신 비교보다와 'A는 같다', 'A는 동일한 아닙니다'를 말하는 것 :

declare @s1 nchar(1)='à' 
declare @s2 nchar(1)='a' 
select 
    case 
    when @s1 <> @s2 collate latin1_General_CS_AS Then 'a is NOT equal à' 
    else 'a is equal to à' 
    end 
+0

하는 것이 가능에 대한 기본 데이터베이스 데이터 정렬을 무시하는 것입니다 각 문에 COLLATE를 쓰는 대신 작업 블록을 사용합니까? –

+0

@ vgv8 - 그렇게 할 방법이 없다는 것을 알고 있습니다 - 한 부씩 정렬에 대한 도움말, http://msdn.microsoft.com/en-us/library/ms184391.aspx, 사용할 수있는 위치는 3 개뿐입니다 (DB 정의, 열 정의 및 데이터 정렬 (여기에서 우리가 수행하는 작업입니다). –