Функция CONCAT в SQL используется для объединения двух строк в одну строку. Попробуем следующий пример:
SQL> SELECT CONCAT('FIRST ', 'SECOND'); +----------------------------+ | CONCAT('FIRST ', 'SECOND') | +----------------------------+ | FIRST SECOND | +----------------------------+ 1 row in set (0.00 sec)
Чтобы понять функцию CONCAT более подробно, рассмотрим таблицу EMPLOYEE_TBL, которая содержит следующие записи:
SQL> SELECT * FROM employee_tbl; +----+----------+------------+--------------------+ | id | name | work_date | daily_typing_book | +----+----------+------------+--------------------+ | 1 | Dima | 2017-02-01 | 250 | | 2 | Ruslan | 2017-03-02 | 220 | | 3 | AndreyEx | 2017-01-11 | 170 | | 3 | AndreyEx | 2017-02-02 | 100 | | 4 | Masha | 2017-03-12 | 220 | | 5 | Roma | 2017-06-23 | 300 | | 5 | Roma | 2017-03-12 | 350 | +----+----------+------------+--------------------+ 7 rows in set (0.00 sec)
Теперь предположим, что на основе приведенной выше таблице вы хотите объединить все ID, имена сотрудников и work_date, то вы можете сделать это с помощью следующей команды:
SQL> SELECT CONCAT(id, name, work_date) -> FROM employee_tbl; +-----------------------------+ | CONCAT(id, name, work_date) | +-----------------------------+ | 1Dima2017-02-01 | | 2Ruslan2017-03-02 | | 3AndreyEx2017-01-11 | | 3AndreyEx2017-02-02 | | 4Masha2017-03-12 | | 5Roma2017-06-23 | | 5Roma2017-03-12 | +-----------------------------+ 7 rows in set (0.00 sec)
Мне кажется, что человек, который понимает язык этой статьи, уже знает ответ на вопрос, в чём разница между статическим и динамическим SQL. А я не понял. Я хотел понять, в чём разница между статическим и динамическим запросом. Яндекс даёт эту статью на первой странице в ответ на запрос “Что такое динамический запрос”. Вроде статья должна ответить на этот вопрос, но уровень явно для академиков.