亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在PostgreSQL查詢中聲明變量

如何在PostgreSQL查詢中聲明變量

繁華開滿天機 2019-07-15 15:52:53
如何在PostgreSQL查詢中聲明變量如何聲明變量以便在PostgreSQL 8.3查詢中使用?在MSSQLServer中,我可以這樣做:DECLARE @myvar INTSET @myvar = 5SELECT *FROM somewhereWHERE something = @myvar如何在PostgreSQL中實現相同的操作?根據文檔,變量被簡單地聲明為“name type;”,但是這給了我一個語法錯誤:myvar INTEGER;有人能給我舉個正確語法的例子嗎?
查看完整描述

3 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

PostgreSQL中沒有這樣的特性。只能在pl/PgSQL(或其他pl/*)中執行,但不能在普通SQL中執行。

例外是WITH ()可以作為變量工作的查詢,甚至可以用作變量的查詢。tuple變量。它允許您返回一個臨時值表。

WITH master_user AS (
    SELECT
      login,
      registration_date    FROM users    WHERE ...)SELECT *FROM usersWHERE master_login = (SELECT login                      
      FROM master_user)
      AND (SELECT registration_date           FROM master_user) > ...;


查看完整回答
反對 回復 2019-07-15
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

通過使用WITH條款,它一點也不雅致,但也能做到同樣的事情。不過,對于這個例子來說,這確實是過火了。我也不特別推薦這個。

WITH myconstants (var1, var2) as (
   values (5, 'foo'))SELECT *FROM somewhere, myconstantsWHERE something = var1   OR something_else = var2;


查看完整回答
反對 回復 2019-07-15
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

您也可以在PLPGSQL中嘗試這樣做:

DO $$DECLARE myvar integer;BEGIN
    SELECT 5 INTO myvar;

    DROP TABLE IF EXISTS tmp_table;
    CREATE TABLE tmp_table AS
    SELECT * FROM yourtable WHERE   id = myvar;END $$;SELECT * FROM tmp_table;

以上要求Postgres 9.0或更高版本。


查看完整回答
反對 回復 2019-07-15
  • 3 回答
  • 0 關注
  • 7266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號