[SQL] SQL 분할 쉼표로 구분 행 [중복]
SQLSQL 분할 쉼표로 구분 행 [중복]
I는 콤마로 분리하는 가변 개수의 열을 가지고
somethingA,somethingB,somethingC
somethingElseA, somethingElseB
그리고 결과는 각각의 값을, 그리고 행을 만들려면 :
somethingA
somethingB
somethingC
somethingElseA
somethingElseB
어떻게 SQL에 (MySQL의)을이 작업을 수행 할 수 있습니까?
(I는 "내파"와 "측면보기"를 인터넷 검색을 해봤지만, 그 관련 질문을 설정하지 않는 것. 모든 관련 SO 질문은 훨씬 더 복잡한 일을하려고)
해결법
-
==============================
1.이 같은 순수한 SQL로 작업을 수행 할 수 있습니다
이 같은 순수한 SQL로 작업을 수행 할 수 있습니다
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value FROM table1 t CROSS JOIN ( SELECT a.N + b.N * 10 + 1 n FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b ORDER BY n ) n WHERE n.n <= 1 + (LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', ''))) ORDER BY value
참고 : 트릭 활용 집계 (숫자) 테이블이 경우 MySQL의 기능 SUBSTRING_INDEX에 매우 편리한이다 (). 당신이 이러한 쿼리 (분할)을 많이 할 경우에 당신은 채우고이 예에서와 같이 하위 쿼리와 함께 즉석에서 그것을 생성하는 대신 지속 집계 테이블을 사용하는 것이 좋습니다. 이 예에서 하위 쿼리를 효과적으로 당신이 소스 테이블에서 행 당 100 개 구분 된 값으로 분할 수 1 100에서 숫자의 시퀀스를 생성합니다. 당신이 더 많거나 적은 필요한 경우 쉽게 조정할 수 있습니다.
산출:
| VALUE | |----------------| | somethingA | | somethingB | | somethingC | | somethingElseA | | somethingElseB |
여기 SQLFiddle 데모입니다
이 조회가 지속 된 집계 테이블로 보일 수 있습니다 방법입니다
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(t.values, ',', n.n), ',', -1) value FROM table1 t CROSS JOIN tally n WHERE n.n <= 1 + (LENGTH(t.values) - LENGTH(REPLACE(t.values, ',', ''))) ORDER BY value
여기 SQLFiddle 데모입니다
from https://stackoverflow.com/questions/19073500/sql-split-comma-separated-row by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버에서 레코드를 삭제 한 후 다시 설정 신원 씨 (0) | 2020.03.18 |
---|---|
[SQL] 변환 UTF-8 SQL 데이터베이스에 문자열 클래식 ASP (0) | 2020.03.18 |
[SQL] 동일한 사용자 이름의 다른 테이블에서 업데이트 테이블 값 (0) | 2020.03.18 |
[SQL] 자르기 (하지 라운드) SQL Server의 소수점 (0) | 2020.03.18 |
[SQL] 매개 변수는 정말 충분히 SQL 삽입을 방지 할 수 있습니까? (0) | 2020.03.18 |