인덱싱
인덱싱 (Indexing) — SQL 방언 (indexing-sql-dialect-indexing)
DuckDB에서 "인덱싱"이 조금 특별하게 쓰이는 부분이 있어요. 바로 인덱스의 시작 번호(0부터 시작하는지, 1부터 시작하는지)인데요, 데이터 구조에 따라 그 규칙이 달라져요. 이 페이지에서는 그 규칙을 예시와 함께 설명해 드릴게요.
DuckDB는 JSON 객체를 제외하고 1기반(1-based) 인덱싱을 사용해요. JSON 객체는 0기반(0-based) 인덱싱을 사용하죠.
예시 (Examples)
문자열, 리스트 등에서 인덱스의 시작은 1이에요.
SELECT list[1] AS element
FROM (SELECT ['first', 'second', 'third'] AS list);
┌─────────┐
│ element │
│ varchar │
├─────────┤
│ first │
└─────────┘
JSON 객체에서 인덱스의 시작은 0이에요.
SELECT json[1] AS element
FROM (SELECT '["first", "second", "third"]'::JSON AS json);
┌──────────┐
│ element │
│ json │
├──────────┤
│ "second" │
└──────────┘