SQL - это возможно? - PullRequest
       1

SQL - это возможно?

0 голосов
/ 05 октября 2010

У меня есть таблица, которая выглядит следующим образом:

--------------------------------------------
|   Date   |   House#   |   Subscription   |
--------------------------------------------
|  3/02/10 |   x        |      Monthly     |
--------------------------------------------
|  3/03/10 |   y        |      Weekly      |
--------------------------------------------
|  3/04/10 |   z        |      Daily       |
--------------------------------------------

Мне нужна команда, которая будет принимать имя столбца и int и сдвигать значения в этих столбцах на столько уровней.Таким образом (дом, 1) поместил бы z, где y есть, y, где x есть, и z пошел бы в 0 / Нуль.В то время как (house, 2) поместил бы z, где x - это, а y и z - в 0 / null.

Я понимаю, что SQL на самом деле не извлекает способности строка за строкой, так возможно ли это?

Спасибо заранее!

Ответы [ 4 ]

2 голосов
/ 05 октября 2010

Вы можете сделать это в хранимой процедуре, используя курсоры .

1 голос
/ 05 октября 2010

Вы должны использовать PL / SQL, вот пример (не для этого конкретного примера):

DECLARE 
    CURSOR cpaises 
    IS
    SELECT CO_PAIS, DESCRIPCION, CONTINENTE 
    FROM  PAISES;

    co_pais VARCHAR2(3);
    descripcion VARCHAR2(50);
    continente VARCHAR2(25);
BEGIN
    OPEN cpaises;
    LOOP
        FETCH cpaises INTO co_pais,descripcion,continente;
        EXIT WHEN cpaises%NOTFOUND;
        dbms_output.put_line(descripcion);
    END LOOP; 
    CLOSE cpaises;
END;

Я думаю, вы можете использовать переменную, чтобы указать, какой столбец выбрать и обновить, и внутрицикл, вы можете иметь массив с последними значениями n .

1 голос
/ 05 октября 2010

Вы можете использовать подпрограмму PL / SQL. Возьмите имя и номер столбца в качестве ввода, а затем реализуйте логику по своему усмотрению. Курсоры, как указано выше, это один из вариантов, которые у вас есть.

0 голосов
/ 05 октября 2010

Я думаю, что добавив столбец, который содержит значение для использования в качестве порядка сортировки, вы можете обновить этот столбец по мере необходимости, а затем упорядочить по этому столбцу.Если невозможно изменить эту таблицу, возможно, вы могли бы создать новую таблицу для хранения столбца сортировки и объединить два

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...