Topic: Skaičiaus formatavimas select'e

select skaičius from lenta;
Kaip gauti rezultatą 0001
mikrosofte rašyčiau select format(skaičius,"0000") from lenta; , bet mysq'e taip netinka.

Re: Skaičiaus formatavimas select'e

Kodėl netinka?
http://dev.mysql.com/doc/refman/5.0/en/ … ion_format

Re: Skaičiaus formatavimas select'e

a) naudoti LPAD() ir RPAD() funkcijas:

mysql> SELECT LPAD(4,10,'0');
+----------------+
| LPAD(4,10,'0') |
+----------------+
| 0000000004     |
+----------------+
1 row in set (0.00 sec)

b) pasigaminti kažką labiau tinkamo:

CREATE FUNCTION `FormatNumber`(number CHAR(50), number_precision INT) RETURNS char(50) CHARSET utf8
BEGIN

SET @Repeat = number_precision -LENGTH(number);
SET @x = 0;

IF (@Repeat>0) THEN

REPEAT
SET @x = @x + 1;
UNTIL @x >= @Repeat
END REPEAT;
END IF;

RETURN CONCAT(REPEAT('0',@x), number);
END

Naudojimas:

SELECT FormatNumber(Number, Number_of_places) ...