2016-12-02 4 views
1

SQL Server 2008 열을 검색하려고합니다. 열은 lstclasseshas라고 및 그 값은 단일 행SQL Server : 열에서 검색

내가 나에게 결과를 얻기 위해 다음 방법을 시도하고있다 위해 8100, 8200, 8300, 8400처럼 보이지만 그들 중 누구도 내가 뭘 잘못

작동하지 않습니다?

SELECT * 
FROM response_students 
INNER JOIN response ON response_students.responseID = reponseID 
--where classid = #arguments.cid# 
--where ','+lstclasses+',' LIKE '%81072,%' 
WHERE (',' + RTRIM(lstclasses) + ',') LIKE '%,' + '8200' + ',%' 
-- where (',' + RTRIM(lstclasses) + ',') LIKE '%,' + #arguments.cid# + ',%' 
    AND isvoid = 0 

표 행 : 나는 CLASSID이

ID  Name  lstclasses      isVoid 
------------------------------------------------------------ 
1  Test1  8100,8200,8300,7600    0  
2  Test2  7520,8888,8754,8569    1 
3  test3  8545,8566,7854,8569    1 
4  Test4  8756,9874,8796,8547    1 
5  Test5  1235,5423,5241,5632    1 
실행 쿼리 위

와 내가 lstclasses 열 내에서 검색을하고 싶은, 그래서 8200search 될 것 8200로 내 매개 변수에 말 및를 검색 할 수있는 열이 난

,691을 시도하고 무엇을하는 데 도움이 lstclasses

희망이 될 것입니다

+0

오류가 발생합니까? 어떤 결과를 얻고 있으며 예상되는 결과는 무엇입니까? 그리고 response_students와 response의 구조는 무엇입니까? –

+1

WHERE lstclasses LIKE '% 8200 %' – pmbAustin

+0

테이블의 스키마, 원하는 출력 (예) 및 대신 얻은 정보를 실제로 게시하면 도움이됩니다. – pmbAustin

답변

1

시험해보기 :

DECLARE @var VARCHAR(1000) = '8200' 

SELECT * 
FROM response_students 
INNER JOIN response ON response_students.responseID = reponseID 
WHERE lstclasses LIKE '%' + @var + '%' 
AND isvoid = 0 
+0

아니요, 빈 결과가 나타나지 않습니다. 올바른 값인 것으로 확신합니다. 내 값이 쉼표로 구분 된 값이 여러 개이기 때문에 –

+0

내 대답은 2008 년에 작동합니다. r2. 응답 및 응답 _ 학생을위한 전체 스키마를 게시 할 수 있습니까? LIKE를 사용하면 구분 기호에 관계없이 내 대답에 여전히 일치를 제공합니다. –