PostgreSQL 혼합 영숫자 문자열의 자연 정렬
혼합된 영숫자 문자열을 자연스럽게 정렬하는 데 있어 본질적인 문제는 숫자를 정수로 처리하면서 단어의 순서를 유지하는 것입니다. PostgreSQL 9.1 이상에는 실용적인 방법이 있습니다:
복합 유형 및 배열 작업:
샘플 쿼리(PostgreSQL 9.4 이상):
<code class="language-sql">SELECT data FROM alnum ORDER BY ARRAY(SELECT ROW(x[1], CASE x[2] WHEN '' THEN '0' ELSE x[2] END)::ai FROM regexp_matches(data, '(\D*)(\d*)', 'g') x) , data;</code>
PostgreSQL 9.1 처리 방법:
이전 버전의 PostgreSQL에서는 쿼리를 약간 수정해야 합니다.
<code class="language-sql">SELECT data FROM ( SELECT ctid, data, regexp_matches(data, '(\D*)(\d*)', 'g') AS x FROM alnum ) x GROUP BY ctid, data -- ctid作为缺少主键的占位符 ORDER BY regexp_replace (left(data, 1), '[0-9]', '0') , array_agg(ROW(x[1], CASE x[2] WHEN '' THEN '0' ELSE x[2] END)::ai) , data;</code>
이 접근 방식을 사용하면 PostgreSQL에서 문자열 분할 및 자연 정렬이 가능해지며, 혼합된 영숫자 문자열이 포함된 다양한 데이터 세트를 직관적으로 정렬할 수 있습니다.
위 내용은 PostgreSQL에서 혼합된 알파벳 및 숫자 문자열의 자연 정렬을 어떻게 수행할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!