blob: 7c903f4fe82f2519a1cdb067082e54dc24ee7a96 (
plain) (
blame)
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
|
/* syntax version 1 */
/* postgres can not */
USE plato;
-- These examples are taken from [ISO/IEC TR 19075-6:2017] standard (https://www.iso.org/standard/67367.html)
SELECT T.K
FROM T
WHERE JSON_EXISTS (T.J, 'lax $.where');
SELECT T.K
FROM T
WHERE JSON_EXISTS (T.J, 'strict $.where');
SELECT T.K
FROM T
WHERE JSON_EXISTS(T.J, 'strict $.where' FALSE ON ERROR);
SELECT T.K
FROM T
WHERE JSON_EXISTS (T.J, 'strict $.friends[*].rank');
-- NOTE: Table "T" was renamed to "Filter{index}" to combine several filter examples in 1 test
SELECT K
FROM Filter1
WHERE JSON_EXISTS (Filter1.J, 'lax $ ? (@.pay/@.hours > 9)');
SELECT K
FROM Filter1
WHERE JSON_EXISTS (Filter1.J, 'strict $ ? (@.pay/@.hours > 9)');
SELECT K
FROM Filter2
WHERE JSON_EXISTS (Filter2.J, 'lax $ ? (@.pay/@.hours > 9)');
SELECT K
FROM Filter2
WHERE JSON_EXISTS (Filter2.J, 'strict $ ? (@.pay/@.hours > 9)');
SELECT K
FROM Filter2
WHERE JSON_EXISTS (Filter2.J, 'lax $ ? (@.hours > 9)');
SELECT K
FROM Filter2
WHERE JSON_EXISTS (Filter2.J, 'strict $ ? (@.hours > 9)');
-- NOTE: Standard also provides several examples with is unknown predicate. Following their inimitable style
-- standard authors do not provide data for these examples so we do not include them here
|