Advertisement
Guest User

Untitled

a guest
Oct 21st, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.95 KB | None | 0 0
  1. WITH recursive input_strings AS (
  2.     SELECT
  3.         CAST(:input_string AS VARCHAR(1024)) AS mystring
  4.     FROM rdb$database
  5. ), input_data AS (
  6.     SELECT
  7.         1 AS n,
  8.         mystring AS all_data,
  9.         (CHAR_LENGTH(mystring) - POSITION(',', reverse(mystring))) AS lim,
  10.         SUBSTRING(mystring FROM 1 FOR (POSITION(',', mystring, 1) - 1)) AS column_value
  11.     FROM input_strings
  12.     UNION ALL
  13.     SELECT
  14.         POSITION(',', all_data, n) + 1,
  15.         all_data,
  16.         lim,
  17.         SUBSTRING(all_data FROM
  18.             (POSITION(',', all_data, n + 1) + 1) FOR (
  19.                 POSITION(',', all_data, n + 2) - POSITION(',', all_data, n + 1) - 1
  20.             )
  21.         )
  22.     FROM input_data
  23.     WHERE
  24.         n < lim
  25. )
  26. SELECT CAST(column_value AS INT) AS column_value FROM input_data
  27. UNION ALL
  28. SELECT CAST(
  29.     SUBSTRING(mystring FROM
  30.         (CHAR_LENGTH(mystring) - POSITION(',', reverse(mystring))) + 2
  31.     ) AS INT)
  32. FROM input_strings
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement