Я видел подобные вопросы, но в основном они предлагают использовать хранимые процедуры вместо функций. Тем не менее, мне специально нужна функция, потому что: < /p>
a) Я хочу использовать ее в выборе запроса.
b) он должен вернуть несколько строк.
c) Есть ли способ сделать функцию MySQL вернуть несколько строк. p>
CREATE FUNCTION neura_abdm_dev.fun_patient_details(from_date DATE, to_date DATE)
RETURNING VARCHAR(20), VARCHAR(20), VARCHAR(150), VARCHAR(30), DATE, VARCHAR(50);
DEFINE v_patient_id VARCHAR(20);
DEFINE v_episode_id VARCHAR(20);
DEFINE v_patient_name VARCHAR(150);
DEFINE v_gender_desc VARCHAR(30);
DEFINE v_generated_date DATE;
DEFINE v_bed_name VARCHAR(50);
FOREACH cursor1 FOR
SELECT
pdt.patient_id,
edt.episode_id,
pdt.first_name || ' ' || pdt.last_name AS patient_name,
(SELECT mgt.gender_desc
FROM master_gender_tbl mgt
WHERE pdt.gender_id = mgt.gender_id) AS v_gender_desc,
pdt.generated_date
INTO
v_patient_id, v_episode_id, v_patient_name, v_gender_desc, v_generated_date
FROM
patient_details_tbl pdt
JOIN episode_details_tbl edt ON edt.patient_id = pdt.patient_id
WHERE
pdt.generated_date BETWEEN from_date AND to_date;
-- Fetch the bed name
SELECT
mbt.bed_name
INTO
v_bed_name
FROM
book_bed_tbl bbt
JOIN master_bed_tbl mbt ON bbt.bed_id = mbt.bed_id
WHERE
bbt.episode_id = v_episode_id;
RETURN v_patient_id, v_episode_id, v_patient_name, v_gender_desc, v_generated_date, v_bed_name WITH RESUME;
END FOREACH;
END FUNCTION;
< /code>
ожидаемый вывод: < /p>
patent_id < /th>
isport_id < /th>
patent_name < /th>
gender_desc < /th>
Generated_date bed_name < /th>
< /tr>
< /thead>
cgsl25000003 < /td>
op25000002 < /td>
akashg < /td>
мужчина < /td>
2025-01-01 < /td>
< /tr>
cgsl25000004 < /td>
ip25000003 < / td>
dhanumjaireddy < /td>
мужчина < /td>
2025-01-01 < /td>
< /tr>
cgsl25000005 < /td>
op25000005 < /td>
abhimanyuk < /td>
Мужчина
2025-01-02
Подробнее здесь: https://stackoverflow.com/questions/794 ... ons-only-r
Мне нужно вернуть несколько строк из функции MySQL, но функции MySQL возвращают только одно значение [дублировать] ⇐ MySql
Форум по Mysql
1738656047
Гость
Я видел подобные вопросы, но в основном они предлагают использовать хранимые процедуры вместо функций. Тем не менее, мне специально нужна функция, потому что: < /p>
a) Я хочу использовать ее в выборе запроса.
b) он должен вернуть несколько строк.
c) Есть ли способ сделать функцию MySQL вернуть несколько строк. p>
CREATE FUNCTION neura_abdm_dev.fun_patient_details(from_date DATE, to_date DATE)
RETURNING VARCHAR(20), VARCHAR(20), VARCHAR(150), VARCHAR(30), DATE, VARCHAR(50);
DEFINE v_patient_id VARCHAR(20);
DEFINE v_episode_id VARCHAR(20);
DEFINE v_patient_name VARCHAR(150);
DEFINE v_gender_desc VARCHAR(30);
DEFINE v_generated_date DATE;
DEFINE v_bed_name VARCHAR(50);
FOREACH cursor1 FOR
SELECT
pdt.patient_id,
edt.episode_id,
pdt.first_name || ' ' || pdt.last_name AS patient_name,
(SELECT mgt.gender_desc
FROM master_gender_tbl mgt
WHERE pdt.gender_id = mgt.gender_id) AS v_gender_desc,
pdt.generated_date
INTO
v_patient_id, v_episode_id, v_patient_name, v_gender_desc, v_generated_date
FROM
patient_details_tbl pdt
JOIN episode_details_tbl edt ON edt.patient_id = pdt.patient_id
WHERE
pdt.generated_date BETWEEN from_date AND to_date;
-- Fetch the bed name
SELECT
mbt.bed_name
INTO
v_bed_name
FROM
book_bed_tbl bbt
JOIN master_bed_tbl mbt ON bbt.bed_id = mbt.bed_id
WHERE
bbt.episode_id = v_episode_id;
RETURN v_patient_id, v_episode_id, v_patient_name, v_gender_desc, v_generated_date, v_bed_name WITH RESUME;
END FOREACH;
END FUNCTION;
< /code>
ожидаемый вывод: < /p>
patent_id < /th>
isport_id < /th>
patent_name < /th>
gender_desc < /th>
Generated_date bed_name < /th>
< /tr>
< /thead>
cgsl25000003 < /td>
op25000002 < /td>
akashg < /td>
мужчина < /td>
2025-01-01 < /td>
< /tr>
cgsl25000004 < /td>
ip25000003 < / td>
dhanumjaireddy < /td>
мужчина < /td>
2025-01-01 < /td>
< /tr>
cgsl25000005 < /td>
op25000005 < /td>
abhimanyuk < /td>
Мужчина
2025-01-02
Подробнее здесь: [url]https://stackoverflow.com/questions/79410919/i-need-to-return-multiple-rows-from-a-mysql-function-but-mysql-functions-only-r[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия