Skip to content

Commit be63f25

Browse files
author
brownksc
authored
Merge pull request #213 from samuelkaranja/main
Split column values into multiple columns
2 parents 8efc2ce + e092770 commit be63f25

File tree

2 files changed

+62
-0
lines changed

2 files changed

+62
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
-- Using SUBSTRING_INDEX Function
2+
3+
SELECT
4+
SUBSTRING_INDEX(column_name, ' ', 1) AS new_column_name_1,
5+
SUBSTRING_INDEX(column_name, ' ', -1) AS new_column_name_2
6+
FROM
7+
table_name;
8+
9+
-- Handling More Complex Scenarios
10+
11+
SELECT
12+
SUBSTRING_INDEX(column_name, ' ', 1) AS new_column_name_1,
13+
SUBSTRING(column_name, LOCATE(' ', column_name) + 1, LOCATE(' ', column_name, LOCATE(' ', column_name) + 1) - LOCATE(' ', column_name) - 1) AS new_column_name_2,
14+
SUBSTRING_INDEX(column_name, ' ', -1) AS new_column_name_3
15+
FROM
16+
table_name;
17+
18+
-- Handling Extra Spaces and Multiple Delimiters
19+
20+
SELECT
21+
SUBSTRING_INDEX(TRIM(REPLACE(column_name, ' ', ' ')), ' ', 1) AS new_column_name_1,
22+
SUBSTRING_INDEX(TRIM(REPLACE(column_name, ' ', ' ')), ' ', -1) AS new_column_name_2
23+
FROM table_name;
24+
25+
26+
SELECT
27+
SUBSTRING_INDEX(REPLACE(REPLACE(column_name, '-', ' '), '_', ' '), ' ', 1) AS new_column_name_1,
28+
SUBSTRING_INDEX(REPLACE(REPLACE(column_name, '-', ' '), '_', ' '), ' ', -1) AS new_column_name_2
29+
FROM table_name;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
-- Using SPLIT_PART Function
2+
3+
SELECT
4+
SPLIT_PART(column_name, ' ', 1) AS new_column_name_1,
5+
SPLIT_PART(column_name, ' ', 2) AS new_column_name_2
6+
FROM table_name;
7+
8+
-- Using STRING_TO_ARRAY Function
9+
10+
WITH name_array AS (
11+
SELECT
12+
STRING_TO_ARRAY(column_name, ' ') AS name_parts
13+
FROM table_name
14+
)
15+
SELECT
16+
name_parts[1] AS new_column_name_1,
17+
name_parts[2] AS new_column_name_2
18+
FROM name_array;
19+
20+
-- Handling More Complex Scenarios
21+
22+
WITH name_array AS (
23+
SELECT
24+
STRING_TO_ARRAY(column_name, ' ') AS name_parts
25+
FROM table_name
26+
)
27+
SELECT
28+
name_parts[1] AS new_column_name_1,
29+
CASE WHEN array_length(name_parts, 1) = 3 THEN name_parts[2] END AS new_column_name_2,
30+
CASE WHEN array_length(name_parts, 1) = 3 THEN name_parts[3]
31+
WHEN array_length(name_parts, 1) = 2 THEN name_parts[2]
32+
END AS new_column_name_3
33+
FROM name_array;

0 commit comments

Comments
 (0)