T-SQL

SQL Serverで使用可能な手続き言語。

ローカル変数

  • DECLARE文で変数を定義する。
  • 代入にはSET文を使用する。
  • ローカル変数にはtext 型、ntext型、image型は使用できません。

DECLARE @変数 CHAR(1)

DECLARE @文字列 VARCHAR(255)
 
SET @変数 = 'a'
SET @文字列 = 'abcdefgg'
 
SELECT * FORM テーブル WHERE initial = @変数 AND name = @文字列

 

テーブル変数

  • メモリ上にテーブルを持つことが出来る。
  • DBセッション毎に独立しているのでテンポラリとして使用できる。
  • 主キーも設定できる。

DECLARE @tbl TABLE (

    ID int,
    数 int,
    割合 real,
    PRIMARY KEY(ID)
)
  • 通常のテーブルとほぼ同様の使い方が出来る。

INSERT INTO @tbl (ID, 数, 割合) VALUES (1, 10, 0.5)

SELECT * FROM @tbl

 

SELECT結果を代入

  • SELECTした結果を変数に直接代入する。

    DECLARE @件数 INT
    SELECT @件数 = COUNT(*) FROM テーブル

  • カンマで区切ると、複数の変数に同時に代入できる。
  • DECLARE @コード1 VARCHAR(10)
    DECLARE @コード2 VARCHAR(10)
    SELECT @コード1 = CODE1, @コード2 = CODE2 FROM テーブル WHERE ID = '1'

  • 複数レコード該当する場合は、最終行のレコードの内容が代入される。
 

IF文

  • -条件分岐を行う。

    IF @件数 = 0
       INSERT INTO テーブル (.....

  • ブロック記述は、BEGINEND を使う。

    IF @合計 > 0
      BEGIN
        SELECT @合計=COUNT(*) FROM ....
        INSERT INTO ....
      END

 

明示的な型変換CAST

 

前後の空白の除去

  • RTrim関数およびLTrim関数で、左右の空白を除去することが出来る。
  • 前後を同時に除去する関数は無いので、下記のように組み合わせて使用する。
    SELECT RTrim(LTrim(@str))
  • 若しくはユーザ定義関数を作ってしまう。

    CREATE FUNCTION dbo.Trim
    (
        @value VARCHAR(8000)

    RETURNS VARCHAR(8000)
    AS
    BEGIN
        RETURN rtrim(ltrim(@value))
    END

 
 
Comments