des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Как выбрать данные в зависимости от ид?

как преобразовать запросы вида

SELECT "F_Value" FROM "SC_Wonder"."T_Passport" WHERE "ID_Product" = 2

SELECT "F_Value" FROM "SC_Wonder"."T_Passport" WHERE "ID_Product" = 3

в один, чтобы я конкретно знал что первым числом будет значение с ид 2 , вторым с 3 и так далее?

UPD
SELECT "F_Value" FROM "SC_Wonder"."T_Passport" WHERE "ID_Product" IN (2,3) ORDER BY ID_Product;

а если значения с ид 2 нет как вернуть нуль?

я не могу гарантировать что ид будут строго больше. необходимо знать что элемент с определенным ид придет строго определенным по счету либо придет null
  • Вопрос задан
  • 2384 просмотра
Пригласить эксперта
Ответы на вопрос 2
@red_led
Если я правильно вас понял, то так:

SELECT /* v.id, */ "F_Value" 
FROM (VALUES (1), (2)) v(id)
LEFT JOIN "SC_Wonder"."T_Passport" p on v.id = p.ID_Product
ORDER BY ID_Product;

Как это работает:
Сначала создаётся временная табличка, в которой каждая строка это искомый ID_Product. Потом при помощи LEFT JOIN выбираются существующие записи. Для несуществующих поля останутся заполнены null`ами. Если раскомментировать, v.id, будет видно у каких ID_Product нет значений.
Ответ написан
AxisPod
@AxisPod
SELECT "F_Value" FROM "SC_Wonder"."T_Passport" WHERE "ID_Product" in (2,3) ORDER BY "ID_Product";
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы