SELECT DISTINCT код_врача, имя_врача
FROM врачи
WHERE NOT EXISTS (
SELECT обслуживание.код_врача
FROM обслуживание
WHERE Обслуживание.код_врача = врачи.код_врача);
SQL
PL SQL Помогите пожалуйста как из этого запроса сделать функцию
Чтобы сделать функцию из этого запроса, вам нужно сделать следующее:
1) Определите параметры функции, которые будут использоваться в запросе. Например, в данном случае вам может потребоваться параметр для таблицы "обслуживание" и для таблицы "врачи".
2) Замените названия таблиц и колонок в запросе на параметры функции. Например, вместо "врачи.код_врача" вы можете использовать "table1.column1", а вместо "обслуживание.код_врача" - "table2.column2".
3) Оберните запрос в синтаксис функции, указав имя функции, параметры и тело функции (запрос). Например, вы можете создать функцию следующим образом:
CREATE FUNCTION getUniqueDoctors(table1, column1, table2, column2)
RETURNS TABLE (код_врача INT, имя_врача VARCHAR(255))
BEGIN
RETURN (SELECT DISTINCT код_врача, имя_врача
FROM врачи
WHERE NOT EXISTS (
SELECT обслуживание.код
1) Определите параметры функции, которые будут использоваться в запросе. Например, в данном случае вам может потребоваться параметр для таблицы "обслуживание" и для таблицы "врачи".
2) Замените названия таблиц и колонок в запросе на параметры функции. Например, вместо "врачи.код_врача" вы можете использовать "table1.column1", а вместо "обслуживание.код_врача" - "table2.column2".
3) Оберните запрос в синтаксис функции, указав имя функции, параметры и тело функции (запрос). Например, вы можете создать функцию следующим образом:
CREATE FUNCTION getUniqueDoctors(table1, column1, table2, column2)
RETURNS TABLE (код_врача INT, имя_врача VARCHAR(255))
BEGIN
RETURN (SELECT DISTINCT код_врача, имя_врача
FROM врачи
WHERE NOT EXISTS (
SELECT обслуживание.код
Если это PL/SQL, то это Оракул.
А он к нелатинским названиям идентификаторов относится более чем скептически.
Поэтому не получится.
Но если добавить кавычек, то так:
А он к нелатинским названиям идентификаторов относится более чем скептически.
Поэтому не получится.
Но если добавить кавычек, то так:
CREATE OR REPLACE FUNCTION SOME_FUN()
RETURN REF CURSOR
AS
DECLARE
RESULT REF CURSOR;
BEGIN
OPEN RESULT FOR 'SELECT DISTINCT "код_врача", "имя_врача"
FROM "врачи"
WHERE NOT EXISTS (
SELECT "обслуживание"."код_врача"
FROM "обслуживание"
WHERE "Обслуживание"."код_врача" = "врачи"."код_врача")';
RETURN RESULT;
END;
Вы можете сделать этот запрос в функцию следующим образом:
CREATE OR REPLACE FUNCTION get_distinct_doctors()
RETURN TABLE (код_врача INTEGER, имя_врача VARCHAR2)
AS
BEGIN
RETURN QUERY
SELECT DISTINCT код_врача, имя_врача FROM врачи WHERE NOT EXISTS ( SELECT обслуживание.код_врача FROM обслуживание WHERE Обслуживание.код_врача = врачи.код_врача);
END;
В этой функции мы создаем табличное значение с двумя столбцами: код_врача и имя_врача. Затем мы используем ключевое слово RETURN QUERY для возврата результата запроса. Таким образом, функция вернет таблицу с кодами и именами всех уникальных врачей, которые не оказывают услуги.Похожие вопросы
- Добрый день! Помогите пожалуйста сообразить, как написать запрос
- Помогите пожалуйста составить sql запрос
- Помогитес sql кодом, пожалуйста!
- Вопрос по SQL. Помогите понять решение задачи
- Помогите написать sql запросы
- Не очень понятен синтаксис запросов SQL
- SQL-запрос Вывести идентификаторы всех владельцев комнат
- SQL запрос Найдите какой процент пользователей, зарегистрированных на сервисе бронирования
- Sql запрос создания таблицы
- Помогите решить SQL задачки?