SQL Serverでは、T-SQLのSPACE()
を使用できます。 特定の数のスペースを生成する関数。
これは、たとえば2つ以上の文字列を連結する場合など、文字列内にスペースを追加する場合に便利です。
動作方法は、必要な数のスペースを指定すると、正確にその数のスペースの文字列が返されます。
構文
構文は次のようになります:
SPACE ( integer_expression )
integer_expressionの場所 スペースの数を示す正の整数です。これが負の値の場合、NULL
返されます。
例1-基本的な使用法
仕組みの例を次に示します。
SELECT SPACE(40) AS Result;
結果:
+------------------------------------------+ | Result | |------------------------------------------| | | +------------------------------------------+
はっきりしない場合は、40個のスペースができました。
例2–スペースとの連結
この例は、効果を少しよく示している可能性があります。
SELECT 'Keep' + SPACE(10) + 'away!' AS Result;
結果:
+---------------------+ | Result | |---------------------| | Keep away! | +---------------------+
例3–負の整数値
引数は正の値である必要があります。負の値の場合、結果はNULL
になります :
SELECT SPACE(-10) AS Result;
結果:
+----------+ | Result | |----------| | NULL | +----------+
例4–データベースの例
SPACE()
を使用する簡単な例を次に示します。 データベースから返されたときに2つのデータベース列の間にスペースを挿入するには:
USE Music; SELECT TOP(7) ArtistName + SPACE(5) + AlbumName AS 'Artist and Album' FROM Artists ar INNER JOIN Albums al ON ar.ArtistId = al.ArtistId INNER JOIN Genres g ON al.GenreId = g.GenreId WHERE g.Genre = 'Rock';
結果:
+-------------------------------------------+ | Artist and Album | |-------------------------------------------| | Iron Maiden Powerslave | | AC/DC Powerage | | Devin Townsend Ziltoid the Omniscient | | Devin Townsend Casualties of Cool | | Devin Townsend Epicloud | | Iron Maiden Somewhere in Time | | Iron Maiden Piece of Mind | +-------------------------------------------+
1つまたは2つのスペースはどうですか?
これは多くのスペースを追加するための優れた関数ですが、特にコードにスペースを追加するインスタンスが多数含まれている場合は、少数のスペースを含めるとコードの可読性も向上します。
SPACE()
を使用する場合 スペースを数えることなく、瞬時にいくつのスペースを確認できます。
たとえば、次のスペースがいくつあるかがわかるかどうかを確認してください。
SELECT 'Keep' + ' ' + 'away!';
最初の反応は、少し詳しく調べてみる前に、簡単に推測すること(たとえば、「2または3」)である可能性があります。 100%確実にするには、スペースの数を数えるために、おそらくスペースの上にカーソルを置く必要があります。
次のコードを見てください:
SELECT 'Keep' + SPACE(2) + 'away!';
推測する必要はありません。 2
が表示されます コードに直接書き込まれます。
そうは言っても、値は変数内にある可能性があるため、コードは次のようになります。
SELECT 'Keep' + SPACE(@space_size) + 'away!';
これは明らかに、スペースがいくつあるかについての手がかりを提供しません(それを調べる必要はありません)。ただし、@space_size
の値をすでに知っている場合 行ってもいいです。
例5–可変スペースサイズ
前のポイントを示す例を次に示します。
ここで、スペースの数は変数内で定義されます。この場合、変数の値はSPACE()
の直前の行で定義されているため、簡単に確認できます。 機能(明らかに、これが常に当てはまるとは限りません):
DECLARE @space_size int SET @space_size = 2 SELECT 'Keep' + SPACE(@space_size) + 'away!' AS Result GO
結果:
+-------------+ | Result | |-------------| | Keep away! | +-------------+
Unicodeまたは8000を超えるスペース?
Microsoftは、Unicodeデータにスペースを含める、または8000文字を超えるスペースを返すには、REPLICATE
を使用する必要があると述べています。 SPACE
の代わりに 。