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

मैं अन्य कॉलम के आधार पर मूल्यों और चयनों से पोस्टग्रेज में कॉलम कैसे बना सकता हूं?

महत्वपूर्ण नोट:मैं एक view बनाउंगा। आपकी वर्तमान तालिका के आधार पर और नए कॉलम जोड़ने से बचें, क्योंकि वे आपकी स्कीमा को असामान्य कर देंगे। अधिक पढ़ें यहां

साथ ही, मैं qouting से बचने के लिए सभी पहचानकर्ताओं के लिए लोअरकेस नामों का उपयोग करूंगा।

  • GPA_TXT बनाने के लिए फ़ील्ड आप उपयोग कर सकते हैं to_char() समारोह:to_char(gpa, 'FM09.0') (FM परिणामी स्ट्रिंग के सामने जगह से बचना होगा);
  • दूसरे क्षेत्र के लिए, मैं GPA . का उपयोग करूंगा और नहीं GPA_TXT संख्यात्मक तुलना के लिए। आप CASE . पर अधिक जांच कर सकते हैं दस्तावेज़ में निर्माण करें , लेकिन ब्लॉक निम्नलिखित हो सकता है:

    CASE WHEN gpa >= 3.3 THEN 'A'
         WHEN gpa > 2.7 AND gpa < 3.3 THEN 'B'
         WHEN gpa > 0 THEN 'C'
         ELSE 'F' END
    

क्षमा करें, मुझे नहीं पता कि प्रति GPA में ग्रेड कैसे निर्धारित किए जाते हैं, कृपया तदनुसार समायोजित करें।

दृश्य के लिए परिणामी क्वेरी हो सकती है (SQL Fiddle पर भी ):

SELECT name,major,gpa,
       to_char(gpa, 'FM09.0') AS gpa_txt,
       name||'-'||major||'-Grade'||
  CASE WHEN gpa >= 3.3 THEN 'A'
       WHEN gpa > 2.7 AND gpa < 3.3 THEN 'B'
       WHEN gpa > 0 THEN 'C'
       ELSE 'F' END || '-' || to_char(gpa, 'FM09.0') AS adesc
  FROM atab;

एक दृश्य बनाने के लिए बस पहले से जोड़ें CREATE VIEW aview AS इस क्वेरी से पहले।

संपादित करें

यदि आप अभी भी कॉलम जोड़ने के लिए जाते हैं, तो निम्नलिखित को तरकीब अपनानी चाहिए:

ALTER TABLE atab ADD gpa_txt text, ADD adesc text;
UPDATE atab SET
    gpa_txt = to_char(gpa, 'FM09.0'),
    adesc = name||'-'||major||'-Grade'||
      CASE WHEN gpa >= 3.3 THEN 'A'
           WHEN gpa > 2.7 AND gpa < 3.3 THEN 'B'
           WHEN gpa > 0 THEN 'C'
           ELSE 'F' END || '-' || to_char(gpa, 'FM09.0');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में किसी तालिका की पंक्ति गणना खोजने का तेज़ तरीका

  2. Postgres में विभाजन पर Oracle गिनती (विशिष्ट) को कैसे लागू करें

  3. पोस्टग्रेज में सिंगल यूजर मोड में टेबल बनाना

  4. साइबरविन में psql कमांड कैसे सेट करें?

  5. सिद्धांत क्वेरी json को पोस्टग्रेज करती है (इसमें शामिल है) json_array