문제

Select a, b, c from table where a in (1, 2, 3)

목록이 열에 있으면 어떻게됩니까?

나는 이것이 오류를 시도한다 :

Select a, b, c from a in b

내 질문을 명확히하지 않아서 죄송합니다.

이건 ~에 대한 게 아닙니다 가입하다 또는 in (테이블에서 B 선택)

열 B 유형은 Nvarchar이고 데이터는 '1,2,5'와 같은 목록입니다.

열 A 유형은 int입니다.

올바른 솔루션이 없습니다

다른 팁

질문을 읽은 후에는 이것이 당신이 원하는 것입니다.

SELECT
    a,b,c
FROM
    tblA
WHERE
    b LIKE CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar) + ',%'
    OR b LIKE '%,' + CAST(a as nvarchar)

그렇게해야합니다.

많은 답변을 올바른 방향으로 가리키는 많은 답변이지만, 이것이 실제로 효과가 있다고 생각합니다.

SELECT a, b, c
FROM table
WHERE ',' + b + ',' LIKE '%,' + CAST(a as varchar) + ',%'

B 스타트를 시행하여 쉼표로 끝나면 속도를 높일 수 있습니다. 또는 더 나은, 데이터베이스를 정규화하고 열 B를 일대일 관계로 자체 테이블로 이동하십시오.

SQL에서 열은 일반적으로 소위 "스칼라"데이터 유형 중 하나입니다. 숫자, 날짜/시간, 문자열-예 : 참조 MSDN. "목록"을 열로 얻은 의미에서 더 잘 설명하면 b, 그리고 어떻게, 예를 들어 우리에게 우리에게 보여줍니다 CREATE TABLE a 성명서, 우리는 당신을 더 잘 도울 수 있습니다!

보다 SQL 쿼리 도움말이 필요하고 저장된 프로 시저 목록 매개 변수와 개별 열과 일치합니다.. "목록"열을 가져오고 선택한 것에 대해 가입하는 데 사용할 수있는 테이블을 반환하는 UDF를 작성하는 방법을 보여줍니다.

테이블에 가입하고 싶다고 생각하세요?

SELECT a, b, c
FROM a
JOIN b ON a.ID=b.ID
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top