Как работает механизм RegEx [закрыто]

При изучении регулярных выражений мне было интересно, как работает основной движок. Вероятно, более конкретно, я хотел бы узнать больше о том, как он оценивает, расставляет приоритеты и анализирует выражение. Я чувствую, что движок RegEx для меня является черным ящиком, и мне бы очень хотелось расшифровать его.

Поэтому я хотел бы спросить, есть ли какие-то замечательные ресурсы, которые я мог бы прочитать о том, как обсуждать теорию движка RegEx.

* Примечание: я не заинтересован в создании движка, просто изучаю его внутреннюю работу. ) СОЗДАЙТЕ ТАБЛИЦУ B (id INT ПЕРВИЧНЫЙ КЛЮЧ, x INT, y INT, ) Таблица A содержит данные, полученные из ...

Предположим, у меня есть две таблицы:

CREATE TABLE A(
    id INT PRIMARY KEY,
    x INT,
    y INT
)

CREATE TABLE B(
    id INT PRIMARY KEY,
    x INT,
    y INT,
)

Таблица A содержит данные, полученные от другого поставщика, в то время как таблица B является нашими данными. Для простоты я сделал эти таблицы абсолютно одинаковыми с точки зрения схемы, но таблица B, вероятно, будет надмножеством таблицы A (она будет содержать некоторые столбцы, которых таблица A не будет другими словами).

Что Я хотел бы создать представление C со столбцами id, x и y, чтобы значения приходили из таблицы B, если только они не равны NULL; в этом случае они исходят из таблицы A. Например, предположим, что у меня было следующее:

INSERT INTO A (id, x, y)
VALUES (1, 2, 3);

INSERT INTO B (id, x, y)
VALUES (1, NULL, NULL);

INSERT INTO A (id, x, y)
VALUES (2, 3, 4);

INSERT INTO B (id, x, y)
VALUES (2, 5, 6);

INSERT INTO A(id, x, y)
VALUES (3, 4, 5);

INSERT INTO B(id, x, y)
VALUES (3, 5, NULL);

Так что, если я выберу * из C, я получу следующие строки:

(1, 2, 3)
(2, 5, 6)
(3, 5, 5)

Как я могу создать такое представление?

6
задан Jason Baker 1 September 2010 в 21:52
поделиться