Как получить аналогичное значение в Oracle

Всякий раз, когда вам нужно динамически обращаться к ресурсу, вы должны использовать квадратную скобку для доступа к свойству, а не «.». оператор Синтаксис: object [propery}

const something = { bar: "Foobar!" };
const foo = 'bar';
// something.foo; -- not correct way at it is expecting foo as proprty in  something={ foo: "value"};
// correct way is  something[foo]
alert( something[foo])

1
задан Arun Solomon 24 March 2019 в 07:12
поделиться

2 ответа

Вот решение, которое будет работать для MySQL. Он использует коррелированный подзапрос в предложении select, чтобы сгруппировать объединенные значения Col2. Логика заключается в том, что мы агрегируем только значения, которые меньше или равны текущей строке, для данной группы записей, имеющих одно и то же значение Col1.

SELECT
    Col1,
    (SELECT GROUP_CONCAT(t2.Col2 ORDER BY t2.Col2) FROM yourTable t2
     WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
    t1.Col1,
    t1.Col2;

enter image description here

Демо

Здесь тот же запрос в Oracle :

SELECT
    Col1,
    (SELECT LISTAGG(t2.Col2, ',') WITHIN GROUP (ORDER BY t2.Col2) FROM yourTable t2
     WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
    t1.Col1,
    t1.Col2;

Демо

Обратите внимание, что единственное реальное изменение - это замена LISTAGG вместо GROUP_CONCAT.

0
ответ дан Tim Biegeleisen 24 March 2019 в 07:12
поделиться
with s (Col1, Col2) as (
select 'A', 1 from dual union all
select 'A', 2 from dual union all
select 'A', 3 from dual union all
select 'B', 1 from dual union all
select 'B', 2 from dual union all
select 'B', 3 from dual)
select col1, ltrim(sys_connect_by_path(col2, ','), ',') path
from s
start with col2 = 1
connect by prior col2 = col2 - 1 and prior col1 = col1;

C PATH
- ----------
A 1
A 1,2
A 1,2,3
B 1
B 1,2
B 1,2,3

6 rows selected.
0
ответ дан akk0rd87 24 March 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: