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

क्या अन्य आरडीबीएमएस पर पोस्टग्रेस्क्ल हर कुल कार्य के बराबर है?

अनुकरण EVERY() CASE के साथ और SUM()

वास्तव में, यह लेख बताता है कि कैसे EVERY() CASE . के माध्यम से अनुकरण किया जा सकता है और SUM() . निम्नलिखित दो कथन समतुल्य हैं:

SELECT EVERY(id < 10)
FROM book

SELECT CASE SUM(CASE WHEN id < 10 THEN 0 ELSE 1 END) 
         WHEN 0 THEN 1 
         ELSE 0 
       END
FROM book;

EVERY() . के लिए भी यही सच है विंडो फ़ंक्शन:

SELECT 
  book.*, 
  EVERY(title LIKE '%a') OVER (PARTITION BY author_id)
FROM book

SELECT
  book.*,
  CASE SUM(CASE WHEN title LIKE '%a' THEN 0 ELSE 1 END)
       OVER(PARTITION BY author_id)
    WHEN 0 THEN 1 
    ELSE 0
  END
FROM book;

एसक्यूएल मानक

SQL:2008 मानक EVERY का उल्लेख करता है कुल कार्य:

10.9 <aggregate function>

[...]

<aggregate function> ::=
  COUNT <left paren> <asterisk> <right paren> [ <filter clause> ]
  | <general set function> [ <filter clause> ]
  | <binary set function> [ <filter clause> ]
  | <ordered set function> [ <filter clause> ]

<general set function> ::=
  <set function type> <left paren> [ <set quantifier> ]
  <value expression> <right paren>

<set function type> ::=
  <computational operation>

<computational operation> ::=
  AVG
  | MAX
  | MIN
  | SUM
  | EVERY
  | [...]

लेकिन "उन्नत" SQL मानक सुविधाओं को अक्सर डेटाबेस द्वारा लागू नहीं किया जाता है। Oracle 11g उदाहरण के लिए, इसका समर्थन नहीं करता, न ही SQL Server 2012 .

HSQLDB के साथ हालाँकि, आप अधिक भाग्यशाली हो सकते हैं। HSQLDB 2.x बहुत ही मानकों के अनुरूप है, साथ ही MySQL को BIT_AND() पता है एग्रीगेट फ़ंक्शन, जो EVERY() . के लिए एक गैर-मानक उपनाम है , पोस्टग्रेज़ द्वारा भी समर्थित है।

ध्यान दें, कुछ डेटाबेस उपयोगकर्ता द्वारा परिभाषित समग्र कार्यों को लिखने की अनुमति देते हैं, इसलिए आप EVERY() को भी लागू कर सकते हैं। स्वयं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC प्रकार के लिए कोई बोली मानचित्रण नहीं:2003

  2. सभी तालिकाओं के लिए अनुक्रम आईडी पोस्टग्रेएसक्यूएल को बल्क अपडेट कैसे करें

  3. एक सबक्वेरी में LIMIT के साथ एक क्वेरी को सरल बनाना और सबक्वायरी और बाहरी क्वेरी में डुप्लिकेट किए गए क्लॉज

  4. RDSdataService execute_statement रिटर्न (BadRequestException)

  5. PostgreSQL:गिनती के बाद वापसी संदेश =0