【MySQL/MariaDB】クエリ結果を小数点にキャストする方法を徹底解説! CAST(), CONVERT(), FORMAT() 関数を使いこなそう
MySQLとMariaDBでクエリ結果を小数点としてキャストする方法
CAST() 関数は、値を別のデータ型に変換するために使用されます。小数点にキャストするには、次のように CAST() 関数に DECIMAL
データ型を指定します。
SELECT CAST(数値列 AS DECIMAL(precision, scale));
precision
は、小数点以下の桁数を含めた合計桁数を指定します。scale
は、小数点以下の桁数を指定します。
例:
SELECT CAST(price AS DECIMAL(10, 2));
このクエリは、price
列の値を小数点以下2桁の10桁の小数点としてキャストします。
SELECT CONVERT(数値列, DECIMAL(precision, scale));
SELECT CONVERT(price, DECIMAL(10, 2));
FORMAT() 関数は、数値を文字列として書式設定するために使用されます。小数点として書式設定するには、次のように FORMAT() 関数に 0.00
フォーマットを指定します。
SELECT FORMAT(数値列, '0.00');
SELECT FORMAT(price, '0.00');
注意事項:
- CAST() 関数と CONVERT() 関数は、結果を小数点として 変換 します。元の列のデータ型が変更されるわけではありません。
- FORMAT() 関数は、結果を小数点として 書式設定 します。元の列のデータ型は変更されません。
- 小数点以下の桁数を指定しないと、デフォルトの桁数が使用されます。デフォルトの桁数は、データ型によって異なります。
MySQLとMariaDBでは、CAST() 関数、CONVERT() 関数、FORMAT() 関数を使用して、クエリ結果を小数点としてキャストすることができます。それぞれの関数には異なる特徴があるので、状況に合わせて適切な関数を選択してください。
例1: CAST() 関数を使用する
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
INSERT INTO products (name, price) VALUES
('Laptop', 1299.99),
('Phone', 699.00),
('Tablet', 399.95);
SELECT id, name, CAST(price AS DECIMAL(5, 1)) AS formatted_price
FROM products;
出力:
id | name | formatted_price
----+------------+----------------
1 | Laptop | 1299.9
2 | Phone | 699.0
3 | Tablet | 399.9
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
INSERT INTO products (name, price) VALUES
('Laptop', 1299.99),
('Phone', 699.00),
('Tablet', 399.95);
SELECT id, name, CONVERT(price, DECIMAL(5, 1)) AS formatted_price
FROM products;
id | name | formatted_price
----+------------+----------------
1 | Laptop | 1299.9
2 | Phone | 699.0
3 | Tablet | 399.9
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL
);
INSERT INTO products (name, price) VALUES
('Laptop', 1299.99),
('Phone', 699.00),
('Tablet', 399.95);
SELECT id, name, FORMAT(price, '0.00') AS formatted_price
FROM products;
id | name | formatted_price
----+------------+----------------
1 | Laptop | 1299.99
2 | Phone | 699.00
3 | Tablet | 399.95
説明:
- 上記のコードは、
products
というテーブルを作成し、3つの製品データを追加します。 CAST() 関数
、CONVERT() 関数
、FORMAT() 関数
を使用して、price
列の値を小数点以下1桁の小数点として表示します。- 各関数は、小数点以下の桁数を指定することで、表示される桁数を制御できます。
このコードを参考に、状況に合わせて適切な関数を選択して、クエリ結果を小数点としてキャストしてください。
MySQLとMariaDBでクエリ結果を小数点としてキャストするその他の方法
ROUND() 関数は、数値を小数点以下指定桁数まで丸めます。小数点としてキャストするには、次のように ROUND() 関数に小数点以下0桁を指定します。
SELECT ROUND(数値列, 0);
SELECT ROUND(price, 0);
FLOOR() 関数は、数値を切り捨てて小数部分を0にします。小数点としてキャストするには、次のように FLOOR() 関数を使用します。
SELECT FLOOR(数値列);
SELECT FLOOR(price);
SELECT CEIL(数値列);
SELECT CEIL(price);
MySQLとMariaDBでは、さまざまな方法でクエリ結果を小数点としてキャストできます。状況に合わせて適切な方法を選択してください。
上記以外にも、SUBSTRING()
関数や LTRIM()
関数と組み合わせて使用することで、より複雑な小数点処理を行うこともできます。
mysql mariadb