2011-03-03 2 views
3

내 데이터 세트에서 같은 쿼리를 (데이터베이스의 .mdf 파일에 있습니다) 작동합니다C# 및 SQL LIKE 조건 : '%'는 같은 단일 문자 와일드 카드

SELECT * 
FROM TableName 
WHERE SomeField LIKE @Param 

TableName는 기록을 Значение을 포함 in SomeField 필드.

@Param은 그것의 Значени%입니다 완벽하게 작동하지만, @ParamЗначен% 또는 Значе% 때, 그것은 0 행을 반환에게 있습니다. Значе%%%도 작동합니다.

왜 '%'는 단일 문자 와일드 카드로 작동합니까?

+2

테이블과 데이터베이스의 데이터 정렬이란 무엇입니까? 다른 곳에서 쿼리를 실행할 때도 동일한 결과가 나타 납니까? – BoltClock

+1

그리고'column'과'param'의 자료형을 참조하십시오. –

+0

키릴 문자 일반 및 데이터 세트 뷰어 및 C# 코드에서 동일한 결과가 나타납니다. – ohohoho

답변

5

귀하의 문제는 그래서

귀하의 데이터를 일치하지 않습니다, 이건 정말

N'Значе%    ...' (many more spaces) 

입니다

declare @Param nchar(255) 
set @Param = N'Значе%' 

NCHAR하지 NVARCHAR의 @param를 사용한다는 것입니다

N'Значение    ...' (padded with spaces) 
+0

고마워, 지금은 멍청이야. @param을 NVARCHAR로 변경했습니다. – ohohoho