DB

【SQL Server】Transact-SQLの基本的な使い方

Transact-SQL はSQL Server 独自の拡張機能です。
SQL文の中で変数やIF文、ループ処理などのプログラミングのような記述をすることができます。
そんなTransact-SQLの使い方を まとめます。

変数の使い方

変数の宣言(DECLARE)

変数を宣言する場合は、DECLARE を使用します。
変数名には頭に@を付けます。
初期値は省略可能です。

構文

DECLARE @変数名 データ型 [=初期値]

--int型、初期値10で宣言
DECLARE @num int = 10;
--varchar(10)型、初期値'declare'で宣言
DECLARE @string varchar(10) = 'declare';

変数に代入(SET)

変数に値を代入する場合は、SET を使用します。

構文

SET @変数名 = 値

--変数numに100を代入
SET @num = 100
--変数stringに'set'を代入
SET @string = 'set'

変数の値を出力(PRINT / SELECT)

変数の値を出力したい場合は、PRINT か SELECT を使用します。

構文

PRINT @変数名

SELECT @変数名

PRINT はメッセージにテキスト形式で出力されます。


SELECT は結果にグリッド形式で出力されます。

IF(条件分岐)の使い方

Transact-SQL では、IF を使うことにより条件分岐処理を記述することができます。
構文のBEGINとENDは処理が1ステートメントの場合は省略が可能です。

IF ELSE(条件分岐)

構文

IF(条件式)
   [BEGIN]
      条件が真の場合の処理
   [END]
ELSE
   [BEGIN]
      条件が偽の場合の処理
   [END]

DECLARE @num int = 10;
IF(@num >= 10)
	BEGIN
		PRINT '10以上です';
	END
ELSE
	BEGIN
		PRINT '10未満です';
	END

-- これでもいける
IF(@num >= 10)
	PRINT '10以上です';
ELSE
	PRINT '10未満です';

IF EXISTS

IF EXISTS を使うことにより、SELECT の結果が存在するかどうかによる分岐処理を記述することができます。

構文

IF EXISTS(SELECT文)
   [BEGIN]
      条件が真の場合の処理
   [END]
ELSE
   [BEGIN]
      条件が偽の場合の処理
   [END]

IF EXISTS(SELECT * FROM Person)
	PRINT '存在します';
ELSE
	PRINT '存在しません';

WHILE(ループ処理)の使い方

WHILE を使うことで、ループ処理を記述することができます。
構文のBEGINとENDは処理が1ステートメントの場合は省略が可能です。

構文

WHILE(条件式)
   [BEGIN]
      条件を満たしている場合の処理
   [END]

DECLARE @num int = 1;
WHILE(@num <= 10)
	BEGIN
         -- CONVERT で文字列に変換
		PRINT CONVERT(char(2), @num)  + '回目のループ';
		SET @num += 1;
	END
--1 回目のループ
--2 回目のループ
--3 回目のループ
--4 回目のループ
--5 回目のループ
--6 回目のループ
--7 回目のループ
--8 回目のループ
--9 回目のループ
--10回目のループ
エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい