SELECT pass,time
FROM (SELECT LEVEL lvl,
LTRIM (SYS_CONNECT_BY_PATH (UPPER (NAME), ','), ',') pass,
REPLACE (SYS_CONNECT_BY_PATH (NAME, ','), ',', '') str,
dbms_aw.eval_number (LTRIM (SYS_CONNECT_BY_PATH (TIME, '+'), '+'))
time
FROM (SELECT LOWER (NAME) NAME, TIME, 1 num
FROM bridge_crossing
UNION
SELECT a.NAME || b.NAME, GREATEST (a.TIME, b.TIME), 2 num
FROM bridge_crossing a, bridge_crossing b
WHERE a.NAME < b.NAME)
START WITH num = 2
CONNECT BY DBMS_RANDOM.VALUE IS NOT NULL
AND LEVEL <= 5
AND MOD (LEVEL, 2) + 1 = num)
WHERE lvl = 5
AND REPLACE (REPLACE (TRANSLATE (str, 'BCDbcd', ' '), ' ', ''), 'Aa', '') = 'A'
AND INSTR (REPLACE (TRANSLATE (str, 'BCDbcd', ' '), ' ', ''), 'AA', 1) = 0
AND INSTR (REPLACE (TRANSLATE (str, 'BCDbcd', ' '), ' ', ''), 'aa', 1) = 0
AND REPLACE (REPLACE (TRANSLATE (str, 'ACDacd', ' '), ' ', ''), 'Bb', '') = 'B'
AND INSTR (REPLACE (TRANSLATE (str, 'ACDacd', ' '), ' ', ''), 'BB', 1) = 0
AND INSTR (REPLACE (TRANSLATE (str, 'ACDacd', ' '), ' ', ''), 'bb', 1) = 0
AND REPLACE (REPLACE (TRANSLATE (str, 'ABDabd', ' '), ' ', ''), 'Cc', '') = 'C'
AND INSTR (REPLACE (TRANSLATE (str, 'ABDabd', ' '), ' ', ''), 'CC', 1) = 0
AND INSTR (REPLACE (TRANSLATE (str, 'ABDabd', ' '), ' ', ''), 'cc', 1) = 0
AND REPLACE (REPLACE (TRANSLATE (str, 'ABCabc', ' '), ' ', ''), 'Dd', '') = 'D'
AND INSTR (REPLACE (TRANSLATE (str, 'ABCabc', ' '), ' ', ''), 'DD', 1) = 0
AND INSTR (REPLACE (TRANSLATE (str, 'ABCabc', ' '), ' ', ''), 'dd', 1) = 0
ORDER BY time
Row# PASS TIME
----------------------------------------------
1 AB,A,CD,B,AB 17
2 AB,B,CD,A,AB 17
3 AB,A,AC,A,AD 19
4 AC,A,AD,A,AB 19
5 AD,A,AC,A,AB 19
6 AD,A,AB,A,AC 19
7 AC,A,AB,A,AD 19
8 AB,A,AD,A,AC 19
9 AB,A,AC,B,BD 20
10 BD,B,AC,A,AB 20
11 BD,B,AB,A,AC 20
12 BC,B,AD,A,AB 20
13 BC,B,AB,A,AD 20
14 AB,B,BD,A,AC 20
15 AB,A,AD,B,BC 20
16 AC,A,BD,B,AB 20
17 AD,A,BC,B,AB 20
18 AD,A,AB,B,BC 20
19 AC,A,AB,B,BD 20
20 AB,B,BC,A,AD 20
21 AB,B,BC,B,BD 21
22 BD,B,BC,B,AB 21
23 BD,B,AB,B,BC 21
24 BC,B,BD,B,AB 21
25 BC,B,AB,B,BD 21
26 AB,B,BD,B,BC 21
27 AB,A,AC,C,CD 23
28 AC,A,AB,C,CD 23
29 CD,C,AB,A,AC 23
30 CD,C,AC,A,AB 23
31 AB,A,CD,C,AC 23
32 AC,C,CD,A,AB 23
33 AB,B,BC,C,CD 24
34 AB,B,CD,C,BC 24
35 CD,C,BC,B,AB 24
36 CD,C,AB,B,BC 24
37 BC,C,CD,B,AB 24
38 BC,B,AB,C,CD 24
39 AC,A,AD,C,BC 26
40 AC,C,BC,A,AD 26
41 BC,C,AD,A,AC 26
42 BC,C,AC,A,AD 26
43 AD,A,BC,C,AC 26
44 AD,A,AC,C,BC 26
45 AC,C,BD,A,AC 26
46 AC,A,BD,C,AC 26
47 AC,C,BC,B,BD 27
48 BC,C,AC,B,BD 27
49 BD,B,BC,C,AC 27
50 BD,B,AC,C,BC 27
51 BC,C,AD,B,BC 27
52 BC,B,BD,C,AC 27
53 BC,B,AD,C,BC 27
54 AC,C,BD,B,BC 27
55 AC,C,BC,C,CD 30
56 BC,C,AC,C,CD 30
57 AC,C,CD,C,BC 30
58 CD,C,AC,C,BC 30
59 CD,C,BC,C,AC 30
60 BC,C,CD,C,AC 30
61 AB,A,AD,D,CD 33
62 AD,A,AB,D,CD 33
63 CD,D,AD,A,AB 33
64 CD,D,AB,A,AD 33
65 AD,D,CD,A,AB 33
66 AB,A,CD,D,AD 33
67 AB,B,BD,D,CD 34
68 AB,B,CD,D,BD 34
69 BD,B,AB,D,CD 34
70 CD,D,BD,B,AB 34
71 CD,D,AB,B,BD 34
72 BD,D,CD,B,AB 34
73 AC,A,AD,D,BD 36
74 AD,A,BC,D,AD 36
75 AD,D,BC,A,AD 36
76 AD,D,BD,A,AC 36
77 AD,A,AC,D,BD 36
78 BD,D,AD,A,AC 36
79 BD,D,AC,A,AD 36
80 AC,A,BD,D,AD 36
81 AD,D,BC,B,BD 37
82 BC,B,BD,D,AD 37
83 BD,D,AD,B,BC 37
84 CD,D,AB,C,CD 37
85 CD,C,AB,D,CD 37
86 BD,D,AC,B,BD 37
87 BD,B,BC,D,AD 37
88 BD,B,AC,D,BD 37
89 BC,B,AD,D,BD 37
90 AD,D,BD,B,BC 37
91 AC,C,BD,D,CD 40
92 CD,D,BD,C,AC 40
93 CD,D,AD,C,BC 40
94 CD,C,BC,D,AD 40
95 CD,C,AC,D,BD 40
96 BD,D,CD,C,AC 40
97 BD,D,AC,C,CD 40
98 BC,C,CD,D,AD 40
99 BC,C,AD,D,CD 40
100 AD,D,CD,C,BC 40
101 AC,C,CD,D,BD 40
102 AD,D,BC,C,CD 40
103 AD,D,BD,D,CD 50
104 CD,D,AD,D,BD 50
105 CD,D,BD,D,AD 50
106 BD,D,CD,D,AD 50
107 BD,D,AD,D,CD 50
108 AD,D,CD,D,BD 50
|