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

Postgresql ORDER BY रिक्त स्थान

पता नहीं, ऐसा कुछ हो सकता है:

with cte as (
   select col1, regexp_split_to_array(col1, ' ') as d
   from Table1

)
select col1
from cte
order by
    d[1] ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$' desc,
    case
        when d[1] ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$' then
            d[1]::numeric
    end,
    d[2]

sql fiddle डेमो

यह स्ट्रिंग को रिक्त स्थान से सरणी में विभाजित करता है, पहली प्रविष्टि को संख्यात्मक में परिवर्तित करता है और इस संख्या और शेष स्ट्रिंग द्वारा परिणाम सॉर्ट करता है



  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. ActiveRecord ::StatementInvalid:PG InFailedSqlTransaction

  3. नोड.जेएस में पोस्टग्रेज (पीजी) क्लाइंट कनेक्शन बंद करना

  4. तालिका पर ट्रिगर जोड़े जाने पर PSQLException और लॉक समस्या

  5. एक क्वेरी में एकाधिक टेबल पर एकाधिक बाएं जुड़ते हैं