sql >> Databasteknik >  >> RDS >> Mysql

CASE i MySQL tvingar kolumndatatyp till BIGINT istället för INT

Följande knep kan hjälpa:

DELIMITER //

CREATE FUNCTION `return_integer`(`number` INT UNSIGNED)
RETURNS INT UNSIGNED DETERMINISTIC
BEGIN
    RETURN `number`;
END//

DELIMITER ;

SELECT
    CASE `L`.`Code`
       WHEN 'ABCD' THEN `return_integer`(0)
       ELSE `L`.`ID`
    END AS XLID
FROM `table_name` `L`;



  1. Lite nyfiken på utdataformatet `mysql -e` med &utan omdirigering

  2. SQL-gruppvärden för en kolumn efter en annan kolumn

  3. MariaDB JSON_REPLACE() Förklarad

  4. SQL:Hur man väljer rader som summerar till ett visst värde