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

MySQL - कस्टम सॉर्ट के लिए उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन बनाना

आपको अपने सबस्ट्रिंग के साथ कुछ समस्याएं हैं, और अंत में कास्ट करने के लिए कास्ट अंत में अधिक अंकों के साथ मूल्यों को क्रमबद्ध करता है, न कि वर्ष के अनुसार। यह बेहतर काम करना चाहिए;

DELIMITER //

CREATE FUNCTION custom_sort(id VARCHAR(8))
    RETURNS VARCHAR(10)
    READS SQL DATA
    DETERMINISTIC
    BEGIN
        DECLARE year VARCHAR(2);
        DECLARE balance VARCHAR(6);
        DECLARE stringValue VARCHAR(10);
        SET year = SUBSTRING(id, 1, 2);
        SET balance = SUBSTRING(id, 3, 6);
        IF(year <= 96) THEN
            SET stringValue = CONCAT('20', year, balance);
        ELSE
            SET stringValue = CONCAT('19', year, balance);
        END IF;
        RETURN stringValue;
    END//

DELIMITER ;

इसे थोड़ा सरल किया जा सकता है;

DELIMITER //

CREATE FUNCTION custom_sort(id VARCHAR(8))
    RETURNS varchar(10)
    DETERMINISTIC
    BEGIN
        IF(SUBSTRING(id, 1, 2) <= '96') THEN
            RETURN CONCAT('20', id);
        ELSE
            RETURN CONCAT('19', id);
        END IF;
    END//

DELIMITER ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL सम्मिलित त्रुटि:ER_BAD_FIELD_ERROR:'फ़ील्ड सूची' में अज्ञात कॉलम '2525'

  2. UTF-8:सामान्य? बिन? यूनिकोड?

  3. थ्रेड खो जाने पर टेबल को अनलॉक करना

  4. MySQL में एकाधिक पंक्तियों को एक कॉलम में कैसे संयोजित करें

  5. Mysql का उपयोग करके लोकलहोस्ट डेटाबेस कैसे बनाएं?