PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL में CTE (कॉमन टेबल एक्सप्रेशंस) के लिए कॉलम प्रकार कैसे निर्दिष्ट करें?

मुझे लगता है कि आपको अपने मामले में VALUES अभिव्यक्ति के अंदर प्रकार निर्दिष्ट करना होगा:

WITH t (f0, f1) as (
  values 
     (1::bigint, 10::bigint),
     (2, 20)
)...

आपको केवल मानों के पहले सेट के प्रकारों की आवश्यकता है, PostgreSQL बाकी का अनुमान लगा सकता है।

उदाहरण के लिए, मान लें कि हमारे दो कार्य हैं:

create function f(bigint, bigint) returns bigint as $$
begin
    raise notice 'bigint';
    return $1 * $2;
end;
$$ language plpgsql;

create function f(int, int) returns int as $$
begin
    raise notice 'int';
    return $1 * $2;
end;
$$ language plpgsql;

फिर

WITH t (f0, f1) as (
    values
        (1, 10),
        (2, 20)
)
select f(f0, f1) from t;

आपको दो int देगा नोटिस जबकि

WITH t (f0, f1) as (
    values
        (1::bigint, 10::bigint),
        (2, 20)
)
select f(f0, f1) from t;

आपको दो bigint देगा नोटिस।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. pgbouncer के साथ लेनदेन पूलिंग का उपयोग करने के क्या फायदे हैं?

  2. Sequelize इंस्टेंस विधियों तक नहीं पहुँच सकता

  3. वेबफैक्शन पर Django प्रोजेक्ट को तैनात करना

  4. PostgreSQL:टाइमस्टैम्प फ़ील्ड पर पसंद के साथ डेटा का चयन करें

  5. खाली पंक्तियां हटाएं