File: pattern_match_expressions.sql

package info (click to toggle)
sqlfluff 3.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 34,000 kB
  • sloc: python: 106,131; sql: 34,188; makefile: 52; sh: 8
file content (72 lines) | stat: -rw-r--r-- 1,576 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
-- redshift_pattern_match_expressions.sql
/* examples of pattern match expressions
( https://docs.aws.amazon.com/redshift/latest/dg/pattern-matching-conditions.html )
that are supported in redshift. */

-- LIKE/ILIKE expressions supported
SELECT *
FROM animals
WHERE family LIKE '%ursidae%';

SELECT *
FROM animals
WHERE family NOT LIKE '%ursidae%';

SELECT *
FROM animals
WHERE genus ILIKE '%ursus%';

SELECT *
FROM animals
WHERE genus NOT ILIKE '%ursus%';

SELECT *
FROM animals
WHERE family LIKE '%ursidae%' ESCAPE '\\';

SELECT *
FROM animals
WHERE genus NOT ILIKE '%ursus%' ESCAPE '\\';

SELECT COALESCE(family LIKE '%ursidae%' ESCAPE '\\', FALSE) AS is_bear
FROM animals;

-- SIMILAR TO expressions supported
SELECT *
FROM animals
WHERE family SIMILAR TO '%ursidae%';

SELECT *
FROM animals
WHERE family NOT SIMILAR TO '%ursidae%';

SELECT *
FROM animals
WHERE genus SIMILAR TO '%ursus%';

SELECT *
FROM animals
WHERE genus NOT SIMILAR TO '%ursus%';

SELECT *
FROM animals
WHERE family SIMILAR TO '%ursidae%' ESCAPE '\\';

SELECT *
FROM animals
WHERE genus NOT SIMILAR TO '%ursus%' ESCAPE '\\';

SELECT COALESCE(family SIMILAR TO '%ursidae%' ESCAPE '\\', FALSE) AS is_bear
FROM animals;

-- From https://github.com/sqlfluff/sqlfluff/issues/2722
WITH cleaned_bear_financial_branch AS (
    SELECT
        branch_id,
        TO_NUMBER(CASE WHEN honey_numerical_code SIMILAR TO '[0-9]{0,7}.?[0-9]{0,2}' THEN honey_numerical_code ELSE NULL END, '24601') AS honey_numerical_code
    FROM bear_financial_branch
)

SELECT branch_id
FROM cleaned_bear_financial_branch
LIMIT 10;