Senin, 15 April 2013

Function INITCAP Untuk MySQL

Jika kita menggunakan Oracle mungkin kita tidak perlu repot-repot membuat function karena fungsi INITCAP di Oracle sudah ada. Tapi jika kita di MySQL, maka kita perlu membuat sebuah function sendiri karena function initcap tidak disediakan di MySQL.

Function initcap untuk MySQL :

DELIMITER $$

CREATE FUNCTION `mysql_training`.`initcap`(X VARCHAR(255)) 
RETURNS VARCHAR(255)
    BEGIN
     SET @str   = '';
     SET @l_str = '' ;
 
     WHILE X REGEXP ' ' DO
      SELECT SUBSTRING_INDEX(X, ' ', 1) INTO @l_str;
      SELECT SUBSTRING(X, LOCATE(' ', X)+1) INTO X;
      SELECT CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(@l_str, 1, 1)), 
      LOWER(SUBSTRING(@l_str, 2)))) INTO @str;
     END WHILE;

     RETURN LTRIM(CONCAT(@str, ' ', CONCAT(UPPER(SUBSTRING(X, 1, 1)), 
     LOWER(SUBSTRING(X, 2)))));
    END$$

DELIMITER ;

Cara Running :

SELECT 
 initcap('isikan seBuAh fiELD atAu sTRing sEmBARang') STRING
FROM DUAL;

Hasil Eksekusi :

STRING
-----------------------------------------
Isikan Sebuah Field Atau String Sembarang