2012-02-02 4 views
2

: 내 ID 번호에 대한 SQL DB를SQL 16 진수 문자열 비교 배경

. 그들은 "44b1e3d6e8ee4da7"처럼 보이고이 지점까지 차이 쿼리를 기반으로 탐지 할 수있었습니다.

쿼리

use [table] 
select date,id 
from View 
with(nolock) where id like '________________' 
and DIFFERENCE(substring(id,charindex('?____=', id)+6, 
(len(id) - (charindex('?____=', id) +5))), 'ae93ed317663c028') > 0 

하지만 지금은 데이터가 다소 변경되었습니다 사람들이 "251 & R = 1328129429"와 같은 ID 년대에두고있다.

"44b1e3d6e8ee4da7"과 "251 &r = 1328129429"의 차이를 쉽고 빠르게 알려면 어떻게합니까? 나는 그들이 모두 16 자 길이라는 것을 알고있다. 두 번째 문자열에는 &과 a =가 있지만 추가로 AND를 사용하지 않으려는 것을 알고 있습니다! 내가 가지고 있지 않으면 "& 또는 ="이 포함되어 있습니다.

제안 사항? 질문에 대한

업데이트 : @gbn가 언급 한 바와 같이

내 원래의 질문에 대답하지 않았다. 이것은 단지 부분적인 질문 이었기 때문입니다. 나는 당시에 내가 무엇을 묻고 있는지 완전히 알지 못했다. 내 질문은 "특수 문자가있는 풀 문자열을 내 결과 문자열에서 제거하고 16 자리 16 진수 문자열 만 남기려면 어떻게해야합니까?

@MartinSmith는이 질문에 대한 훌륭한 코드 예제를 제공했습니다. 마틴 스미스 (MartinSmith)는 실제 질문이 무엇인지에 대한 내 질문을보고 선형 사고가 많았으며 귀하의 노력과 답변에 박수를 보냈습니다. 감사합니다 ..

+1

간단한 'valueA <> valueB'? 숫자가 일치하거나 그들이하지 않습니다 ... 사이에 많이 ... – gbn

+0

내가 입력 한 새로운 ID에 대한 리포트를 당겨 야해. 나는 그들이 모두 16 자이고 그 안에 특수 문자가없는 16 진수 형식이라는 것을 알고있다. – toosweetnitemare

+0

"간단한 valueA <> valueB"가 의미하는 것을 자세히 설명해 줄 수 있습니까? – toosweetnitemare

답변

2

"16 자 길이의 16 진수 형식 "사용할 수 있습니다

WHERE id LIKE REPLICATE('[0-9A-Fa-f]',16) 
+0

지금 당장 시도해보십시오. Martin 고마워! – toosweetnitemare

+0

나쁜 질문입니다. ""44b1e3d6e8ee4da7 "과"251 & r = 1328129429 "의 차이점을 어떻게 쉽고 빠르게 말할 수 있습니까?"... – gbn

+0

"imps."와 같이 문자열의 마지막 16자를 살펴보기 위해 수정할 수 있습니까? php? sgms = 248 & r = 1328084992 "? 난 당신의 방법에 대한 두 번째 사용법을 찾은 것 같아요 :) – toosweetnitemare