2011-08-29 3 views
0

나는이처럼 보이는 XML 열에서 사용자 기본 설정을 저장 대소 문자를 구분합니다 어떤 결과든지, 속성 값은 xml 열의 경우와 다른 경우입니다.SQL Server 2008의 XML 속성 검색

속성 이름으로 검색하는 방법에 대한 아이디어는 대소 문자를 구분하지 않습니까?

감사

SQL 서버 2008 당신이 그렇게처럼 소문자와 대문자 기능을 활용할 수와

답변

1

:

select * from company where CAST(tags.query('tags/user/tag[fn:contains(lower-case(@name),"ab")]') as varchar(2000)) <>'' 

참조 :

New XQuery functions introduced in SQL Server 2008: upper-case() and lower-case()

lower-case Function (XQuery) (MSDN)

+0

감사합니다. @jdavies. 작동하지만 쿼리를 실행하는 데 시간이 많이 걸립니다. 제가 시도하고있는 것을하기위한 더 좋은 방법이 있습니까? – FullMetal5000

+0

내가 아는 한 귀하의 질문에는 아무런 문제가 없습니다 (그러나 나는 전문가는 아닙니다). 귀하의 회사 테이블이 매우 큰가요? 테이블에서 다른 쿼리 나 간단한 선택을하는 데 시간이 오래 걸리나요? 아마도 [XML 데이터 형식 열의 인덱스] (http://msdn.microsoft.com/ko-kr/library/ms191497.aspx) 태그 열의 인덱싱을 살펴볼 수 있습니다. – jdavies

+0

@ FullMetal5000 - 캐스트와 쿼리 대신 exist를 사용하십시오. '어디에서 tags.exist ('tags/user/tag [fn : contains (소문자 (@name), "ab")]') = 1' –