SQL에서 VARCHAR 열 값 분할
SQL에서 VARCHAR 데이터 유형은 가변 길이 문자열을 저장합니다. VARCHAR 열을 처리할 때 열 값을 여러 개별 값으로 분할해야 할 수도 있습니다.
다음과 같은 SQL SELECT 문이 있다고 가정해 보겠습니다.
SELECT AD_Ref_List.Value FROM AD_Ref_List WHERE AD_Ref_List.AD_Reference_ID= 1000448
이 문은 모든 값을 반환합니다. AD_Reference_ID 열이 1000448인 AD_Ref_List 테이블의 값 열 값. 결과는 다음과 같습니다. this:
Value |
---|
CO,VO |
이 결과에서 값 열에는 쉼표로 구분된 값 목록이 포함됩니다. 결과를 추가로 필터링하려면 다음과 같이 값을 개별 행으로 분할할 수 있습니다.
Value |
---|
CO |
VO |
이를 달성하는 한 가지 방법은 다음과 같이 IN 연산자를 사용하는 것입니다.
SELECT AD_Ref_List.Value FROM AD_Ref_List WHERE AD_Ref_List.AD_Reference_ID= 1000448 AND AD_Ref_List.Value IN (SELECT xx_insert.XX_DocAction_Next FROM xx_insert WHERE xx_insert_id = 1000283 ) ;
그러나 Oracle은 값 목록을 개별 값이 아닌 단일 문자열로 처리하므로 이 쿼리는 행을 반환하지 않을 수 있습니다. 이 문제를 해결하려면 다음 기술을 사용할 수 있습니다.
SELECT r.Value FROM AD_Ref_List r INNER JOIN xx_insert x ON ( ',' || x.XX_DocAction_Next || ',' LIKE '%,' || r.value || ',%' ) WHERE r.AD_Reference_ID = 1000448 AND x.xx_insert_id = 1000283;
이 쿼리는 LIKE 연산자를 사용하여 AD_Ref_List 테이블의 값이 xx_insert 테이블 값 목록의 하위 문자열인지 확인합니다. 그러면 값 열의 각 값이 별도의 행으로 표시되어 원하는 결과가 반환됩니다.
위 내용은 SQL에서 쉼표로 구분된 VARCHAR 열 값을 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!