두 글자를 다르게 포맷해야하는 두 글자 인 char(4)
을 비교해야합니다. 따라서 다른 형식과 비교할 수 있도록 하나의 형식을 원합니다. 기본적으로 접두사 0과 후행 공백이 있으면 제거해야합니다.접두어가 붙은 모든 문자 및 접미사 공백을 제거하십시오.
문자 : 예를 들어
'001 '
및 '1'
모두
'010 '
및 '10'
를 포맷 한 후 '1A'
에 비교해야 모두
'001A'
및 '1A'
를 포맷 한 후 '1'
에 비교해야해야 둘 다와 비교됩니다.
'010A'
및 '10A'
를 포맷 한 후 둘은 모두
select Replace(Ltrim(Replace(Rtrim(@charToBeFormatted), '0', ' ')), ' ', '0')
보인다 포맷 한 후 '100A'
에 비교해야
'100A'
를 포맷 한 후 '100'
에 비교해야
'100 '
및 '100'
를 포맷 한 후 '10A'
에 비교해야 일하기는하지만 재사용에 낭비된다. 문자열을 두 번 배치하고 실제로 의도를 명확하게 나타내지는 않습니다.
보다 효율적으로 및/또는 우아한 방식으로 결과를 얻을 수 있습니까?
@Benoit [LTRIM] (http://msdn.microsoft.com/en-us/library/ms177827.aspx) 및 [RTRIM ] (http://msdn.microsoft.com/en-us/library/ms178660.aspx) 두 번째 매개 변수를 사용하지 마십시오. –
@JoeStefanelli 무슨 뜻인지 확실하지 않습니다. 이 예에서 LTRIM과 RTRIM은 하나의 매개 변수만을 사용합니다. 당신은 정교 할 수 있습니까? (가독성/명확한 의도가없는 언급 된 문제에 밑줄을 붙일 수도 있습니다.) – steenhulthin
나는 그가 삭제 한 @Benoit에 의해 게시 된 커미션에 응답하고있었습니다. –