add remove split language show hidden hide
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
version
PostgreSQL 18beta1 (Debian 18~beta1-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
SELECT 1
CREATE TABLE
INSERT 0 4
label should result
Thomas Hawk AQWS456 OK OK
Cecile Star RQWS456 KO KO
Mickey Mouse WQWS456 KO KO
Donald Duck SQWS456 OK OK
SELECT 4
label reverse split_part right result should
Thomas Hawk AQWS456 654SWQA kwaH samohT 654SWQA A OK OK
Cecile Star RQWS456 654SWQR ratS eliceC 654SWQR R KO KO
Mickey Mouse WQWS456 654SWQW esuoM yekciM 654SWQW W KO KO
Donald Duck SQWS456 654SWQS kcuD dlanoD 654SWQS S OK OK
SELECT 4
CREATE FUNCTION
label result
Donald Hawk RQWS456 KO
Mouse Hawk RQWS456 KO
Mickey Star SQWS456 OK
Duck Thomas SQWS456 OK
Star Donald AQWS456 OK
Thomas Star SQWS456 OK
Thomas Star AQWS456 OK
Mickey Mickey AQWS456 OK
Hawk Hawk AQWS456 OK
Duck Thomas SQWS456 OK
Hawk Cecile WQWS456 KO
Star Hawk WQWS456 KO
Donald Thomas WQWS456 KO
Duck Star AQWS456 OK
Star Hawk WQWS456 KO
Star Cecile RQWS456 KO
Hawk Duck SQWS456 OK
Mickey Star AQWS456 OK
Mouse Star SQWS456 OK
Mickey Cecile SQWS456 OK
Thomas Star RQWS456 KO
Thomas Thomas RQWS456 KO
Hawk Duck RQWS456 KO
Cecile Mickey RQWS456 KO
Duck Mickey SQWS456 OK
SELECT 25
CREATE TABLE
INSERT 0 100000
label
Thomas Mickey RQWS456
Cecile Mouse WQWS456
Mouse Duck RQWS456
Hawk Star WQWS456
Mickey Star RQWS456
Hawk Mickey WQWS456
Mickey Star AQWS456
Cecile Hawk RQWS456
Star Thomas WQWS456
Duck Donald AQWS456
SELECT 10
QUERY PLAN
Seq Scan on public.lab (cost=0.00..2369.64 rows=86632 width=64) (actual time=0.014..49.148 rows=100000.00 loops=1)
  Output: label, CASE WHEN ("right"(split_part(reverse(label), ' '::text, 1), 1) = ANY ('{R,W}'::text[])) THEN 'KO'::text ELSE 'OK'::text END
  Buffers: shared hit=637
Planning Time: 0.028 ms
Execution Time: 53.828 ms
EXPLAIN
QUERY PLAN
Seq Scan on public.lab (cost=0.00..1719.90 rows=86632 width=64) (actual time=0.022..146.668 rows=100000.00 loops=1)
  Output: label, CASE WHEN (label ~ '\s[A-QS-VX-Za-qs-vx-z][A-Za-z]{3}\d{3}(?:\s|$)'::text) THEN 'OK'::text ELSE 'KO'::text END
  Buffers: shared hit=637
Planning Time: 0.047 ms
Execution Time: 151.740 ms
EXPLAIN