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

PostgreSQL फ़ंक्शन कॉल

यह फ़ंक्शन प्रकार रिज़ॉल्यूशन . के नियमों द्वारा तय किया जाता है . मैनुअल में विस्तृत विवरण। संबंधित:

  • क्या Postgres में फ़ंक्शन ओवरलोडिंग को अक्षम करने का कोई तरीका है

स्पष्ट प्रकार के बिना NULL "अज्ञात" प्रकार के रूप में शुरू होता है:

SELECT pg_typeof(NULL)

 pg_typeof
-----------
 unknown

असल में, मुझे संदेह हुआ और एक त्वरित परीक्षण चलाया, बस पोस्टग्रेज 9.3 और 9.4 में अलग-अलग परिणाम खोजने के लिए। varchar integer पर चुना जाता है (जो अजीब तरह से आपके निष्कर्षों का खंडन करता है):

एसक्यूएल फिडल.

मुझे लगता है कि नियमानुसार सूची में बिंदु 4e है (पहले के बिंदुओं में से कोई भी मैच तय नहीं करता है):

<ब्लॉकक्वॉट>

प्रत्येक पद पर, यदि कोई उम्मीदवार उस श्रेणी को स्वीकार करता है तो स्ट्रिंग श्रेणी का चयन करें। (स्ट्रिंग के प्रति यह पूर्वाग्रह उपयुक्त है क्योंकि अज्ञात-प्रकार का शाब्दिक एक स्ट्रिंग जैसा दिखता है।)

यदि आपने इनपुट प्रकार के साथ कोई अन्य फ़ंक्शन जोड़ा है text अतिभारित मिश्रण के लिए, text varchar . पर चुना जाएगा ।

व्यक्तिगत रूप से मैं लगभग हमेशा text का उपयोग करें varchar . के बजाय . बाइनरी संगत होने के बावजूद (लगभग लगभग समान नहीं), text हर लिहाज से पोस्टग्रेज के दिल के करीब है।

मैंने इसे बेला में जोड़ा, साथ ही एक और उदाहरण जहां पोस्टग्रेज़ निर्णय नहीं ले सकता और एक तंत्र-मंत्र फेंकता है।

यदि आप कोई विशेष फ़ंक्शन चुनना चाहते हैं, तो एक स्पष्ट प्रकार का कास्ट जोड़ें (यही तरीका है यहां जाने का!):

select test(null::int)     AS func_int
     , test(null::varchar) AS func_vc;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेज में अनुक्रम कैसे रीसेट करें और नए डेटा के साथ आईडी कॉलम भरें?

  2. PostgreSQL वृद्धिशील बैकअप और पॉइंट-इन-टाइम रिकवरी

  3. postgresql:md5 संदेश डाइजेस्ट के लिए डेटा प्रकार?

  4. विदेशी कुंजी द्वारा लिंक की गई तालिकाओं में डेटा डालें

  5. PostgreSQL13 में अपग्रेड करना