Мне нужно вернуть несколько строк из функции MySQL, но функции MySQL возвращают только одно значение [дублировать]MySql

Форум по Mysql
Ответить
Гость
 Мне нужно вернуть несколько строк из функции MySQL, но функции MySQL возвращают только одно значение [дублировать]

Сообщение Гость »

Я видел подобные вопросы, но в основном они предлагают использовать хранимые процедуры вместо функций. Тем не менее, мне специально нужна функция, потому что: < /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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»