【SQL Server/CONCAT関数】数値型変数を文字列結合する

数値型の文字列結合は、「+」演算子では
出来ません!
結合ではなく足し算されてしまいます!

DECLARE
	@birthdayYear DECIMAL(4,0),
	@birthdayMonth DECIMAL(2,0),
	@birthdayDay DECIMAL(4,0)

SET @birthdayYear = 2020
SET @birthdayMonth = 1
SET @birthdayDay = 14

--数値型の文字列結合は、「+」演算子では出来ない。演算されてしまう…
SELECT @birthdayYear + @birthdayMonth + @birthdayDay AS '「+」演算子による文字列結合'
数値型の文字列結合は「+」演算子dでは不可
数値型の文字列結合は「+」演算子dでは不可


数値型の文字列結合は、CONCAT関数で
実現できます!


PR

CONCAT関数とは

文字列を結合する関数です。
複数の引数を指定することが出来ます。(3つでも4つでも指定可)

指定した引数は、暗黙的に文字列型へ変換されます。

PR

SQL

ここでは例として、CONCAT関数を使用して数値型(DECIMAL)の変数を文字列結合します。

DECLARE
	@birthdayYear DECIMAL(4,0),
	@birthdayMonth DECIMAL(2,0),
	@birthdayDay DECIMAL(4,0)

SET @birthdayYear = 2020
SET @birthdayMonth = 1
SET @birthdayDay = 14

--CONCAT関数を使用することで、数値型でも文字列結合が出来る
SELECT CONCAT(@birthdayYear,@birthdayMonth,@birthdayDay) AS 'CONCAT関数による文字列結合'
PR

実行結果

数値型変数を文字列結合することが出来ました。

数値型変数を文字列結合
数値型変数を文字列結合

上記を確認すると、数値型変数「@birthdayMonth」に設定した「1」は、暗黙的に「01」へ変換されたことが分かります。

タイトルとURLをコピーしました