2013-04-21 2 views
1

SQL Server에서 Cursor (결과 집합의 각 행을 반복하고 내 문자열을 작성)를 사용하여이 작업을 수행 할 수 있습니다. 그러나 SQLite에서 같은 작업을 수행하는 방법을 모르지만이 작업은 필자가 아는 한 커서를 열로 바꾸려는 정확한 행을 알아야하는 소위 피벗과는 다릅니다. 내 사건은 다르다. 나는 지정된 열의 모든 값을 문자열로 선택하고 (그리고 나서 1 행의 열로 선택할 수있다.)이 열은 SELECT 쿼리에 따라 다양한 값을 가질 수있다. 여기 보이는 방법의 샘플입니다SQLite에서 열의 모든 값을 문자열로 선택 하시겠습니까?

A | B  
------------ 
1 | 0 
8 | 1 
3 | 2 
...  .... 

나는이 같은 문자열로 열 A의 모든 값을 선택하려면 "183 ..."(또는 "1,8,3, ... "괜찮을거야.)

다른 SELECT의 열로 사용할 수 있습니다. 다른 행의 쉼표로 구분 된 목록으로 모든 하위 정보 (열 A의 각 행에)를 표시해야하기 때문에 구현해야합니다.

나는 이것에 대해 아무런 생각이 없다. 프로 시저 문장을 필요로하는 것 같다. 그러나 SQLite는 루프, 변수 선언 등으로 많은 것을 할 수있다. 정말 붙어있어. 이런 종류의 작업은 데이터베이스를 프로그래밍 할 때 매우 일반적이며, 수행을 거부 할 이유가 없습니다.

도움을 주시면 감사하겠습니다. 감사! 당신은 단지 하나의 레코드로 A 열에서 모든 값을 얻으려고 노력하는 경우

+0

원하는 결과는 무엇입니까? 단지 1,8,3? – sgeddes

답변

10

, 다음 GROUP_CONCAT 사용

select group_concat(a, ',') 
from yourtable 

SQL Fiddle Demo

+0

이것은 정확히 내가 원하는 것입니다, 대단히 감사합니다. SQL Server보다 더 간단하다고 생각하지 않았습니다. :) –

+0

group_concat()을 순서에 따라 사용할 수있는 방법은 무엇입니까? 쉼표로 구분 된 목록에서 값의 순서를 변경하려고합니다. 고맙습니다! –

+0

@KingKing -이 게시물을 참조하십시오. 하위 쿼리를 사용해야합니다. http://stackoverflow.com/questions/1897352/sqlite-group-concat-ordering - 감사합니다. – sgeddes

0

가장 큰 문제는 당신이 응용 프로그램처럼 생각하는 것을 프로그램 제작자. SQL은 당신에게 많은 일을합니다.

SELECT * 
    FROM tableA 
WHERE A IN (SELECT A 
        FROM tableB) 

커서, 저장 프로 시저 및 다중 쿼리를 사용하지 않아도됩니다.

+0

질문을 잘 이해하지 못합니다. A.id는 무엇입니까? A는 표가 아닌 열입니다. 감사. –

관련 문제