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

मैं एक स्ट्रिंग को पूर्णांक में कैसे डालूं और PostgreSQL के साथ कलाकारों में त्रुटि के मामले में 0 है?

मैं बस इसी तरह की समस्या से जूझ रहा था, लेकिन एक समारोह के ऊपरी हिस्से को नहीं चाहता था। मैं निम्नलिखित प्रश्न के साथ आया:

SELECT myfield::integer FROM mytable WHERE myfield ~ E'^\\d+$';

पोस्टग्रेज इसके कंडीशन को शॉर्टकट करता है, इसलिए आपको अपने ::integer कास्ट को हिट करने वाला कोई गैर-पूर्णांक नहीं मिलना चाहिए। यह NULL मानों को भी संभालता है (वे regexp से मेल नहीं खाएंगे)।

यदि आप चयन न करने के बजाय शून्य चाहते हैं, तो CASE कथन कार्य करना चाहिए:

SELECT CASE WHEN myfield~E'^\\d+$' THEN myfield::integer ELSE 0 END FROM mytable;


  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 अनुक्रमणिका का उपयोग क्यों नहीं कर रहा है?

  3. प्राग PostgreSQL डेवलपर दिवस 2016

  4. PostgreSQL में एक नंबर पर प्लस/माइनस साइन तैयार करें

  5. ऑपरेशनल एरर को कैसे ठीक करें:(psycopg2.OperationalError) सर्वर ने अप्रत्याशित रूप से कनेक्शन बंद कर दिया