Как передать параметр в предложение WITH - PullRequest
0 голосов
/ 11 марта 2020

Я хочу передать параметр классу WITH как-то так:

WITH sction(id) AS (
  SELECT q.value1
  FROM   Example q
  WHERE q.id=id )

возможно ли это? Кто-нибудь может мне помочь?

Ответы [ 2 ]

4 голосов
/ 11 марта 2020

WITH предложение факторинга aka CTE (выражение общей таблицы) - это то, что мы когда-то go использовали для вызова «подзапроса». Таким образом, он использует предложение WHERE, которое можно использовать для передачи этого «параметра». Например:

WITH sction AS 
  (SELECT q.id,
          q.value1
     FROM Example q
  )
SELECT * 
FROM sction
WHERE id = 125      --> "125" is that "parameter" you pass while selecting from SCTION CTE

Что касается подзапроса, о котором я упоминал: это было бы

select *
from (
      select id, value1 from example    --> this is a CTE
     )
where id = 125

В CTE он перемещается «вверх», вне вашего « основной "запрос.

0 голосов
/ 11 марта 2020

с sction as (выберите q.value1, q.id из примера q) выберите * из sction, где id = 1;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...