sql >> データベース >  >> RDS >> Sqlserver

SQL Server(T-SQL)でのSPACE()関数のしくみ

    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の代わりに 。


    1. PHP-LOADDATAINFILEを使用してCSVファイルをmysqlデータベースにインポートします

    2. SQLServerのSTATISTICSXMLとは何ですか?

    3. リカバリが遅延したログ配布を使用したデータ損失の修正

    4. SQL SERVER –トリック–異なるWindowsアカウントでSSMSを実行する