Constants (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

リテラル値またはスカラー値としても知られる定数は、特定のデータ値を表す記号です。 定数の形式は、その定数が表す値のデータ型に依存します。

文字列定数

文字列定数では、英数字 (a-zA-Z0-9)、感嘆符 (!)、アット マーク (@)、および番号記号 (#) などの特殊文字を単一引用符で囲みます。 文字列定数には、現在のデータベースの既定の照合順序が指定されます。 COLLATE 句が使用されている場合、COLLATE 句によって指定された照合順序への変換の前に、データベースの既定のコード ページへの変換が引き続き行われます。 ユーザーが入力する文字列は、コンピューターのコード ページから評価され、必要に応じてデータベースの既定のコード ページに変換されます。

注意

COLLATE 句を使用して UTF8 対応照合順序を指定した場合、COLLATE 句によって指定された照合順序への変換の前に、データベースの既定のコード ページへの変換が引き続き行われます。 指定された Unicode 対応の照合順序に直接変換することはできません。 詳細については、「Unicode 文字列」をご覧ください。

接続に対して QUOTED_IDENTIFIER オプションが OFF に設定されている場合は、文字列を二重引用符で囲むこともできます。ただし、Microsoft OLE DB Driver for SQL Server および ODBC Driver for SQL Server では、自動的に SET QUOTED_IDENTIFIER ON が使用されます。 単一引用符を使用することをお勧めします。

単一引用符で囲まれた文字列に単一引用符を埋め込む場合は、単一引用符を 2 つ続けて並べることで 1 つの単一引用符を表します。 これは、二重引用符で囲まれた文字列では必要ありません。

文字列の例は次のとおりです。

'Cincinnati'
'O''Brien'
'Process X is 50% complete.'
'The level for job_id: %d should be between %d and %d.'
"O'Brien"

空文字列は、2 つの単一引用符の間に何も挿入しないで表します。 6.x 互換性モードでは、空文字列は 1 つのスペースと見なされます。

文字列は、拡張照合順序をサポートします。

注意

8,000 バイト以上の文字列定数は varchar(max) データ型に分類されます。

Unicode 文字列

Unicode 文字列の形式は文字列に似ていますが、先頭に N 識別子が付きます (N は、SQL-92 標準で National Language を表します)。

重要

プレフィックス N は大文字にする必要があります。

たとえば、'Michél' は文字定数であり、N'Michél' は Unicode 定数です。 Unicode 定数は Unicode データとして解釈され、コード ページを使用して評価されることはありません。 Unicode 定数は照合順序を持ちます。 この照合順序では主に比較と大文字小文字の区別が制御されます。 Unicode 定数には、現在のデータベースの既定の照合順序が指定されます。 COLLATE 句が使用されている場合、COLLATE 句によって指定された照合順序への変換の前に、データベースの既定の照合順序への変換が引き続き行われます。 詳細については、「 Collation and Unicode Support」を参照してください。

Unicode 文字列定数は、拡張照合順序をサポートします。

注意

8,000 バイト以上の Unicode 文字列定数は nvarchar(max) データ型に分類されます。

バイナリ定数

binary 型定数は 16 進数の文字列であり、0x というプレフィックスが付きます。 引用符では囲みません。

バイナリ文字列の例は次のとおりです。

0xAE
0x12Ef
0x69048AEFDD010E
0x  (empty binary string)

Note

8,000 バイト以上の binary 型文字列は varbinary(max) データ型に分類されます。

bit 定数

bit 型定数は数値の 0 または 1 で表します。引用符では囲みません。 1 より大きい数値が使用される場合は、1 に変換されます。

datetime 定数

datetime 型定数は、特定の形式の日付文字値で表し、単一引用符で囲みます。

例を次に datetime 定数。

'December 5, 1985'
'5 December, 1985'
'851205'
'12/5/98'

次に datetime 型定数の例を示します。

'14:30:24'
'04:24 PM'

integer 定数

integer 型定数は数値文字列で表し、引用符では囲みません。また、小数点は含みません。 integer 定数は整数である必要があります。10 進数に含まれることはできません。

例を次に integer 定数。

1894
2

decimal 定数

decimal 型定数は、小数点を含む数値文字列で表し、引用符では囲みません。

例を次に decimal 定数。

1894.1204
2.0

float および real 定数

float および real 型定数は科学的表記法で表します。

次に float または real 値の例を示します。

101.5E5
0.5E-2

money 定数

money 型定数は数値文字列で表し、オプションで小数点および通貨記号をプレフィックスとして付加することができます。 money 型定数は、引用符では囲みません。

SQL Server では、金額を表す文字列の 3 桁ごとにコンマ (,) を挿入するなどのグループ化ルールを設定することはできません。

注意

money データ型にキャストされる文字列リテラル内では、コンマはどこにあっても無視されます。

例を次に money 定数。

$12
$542023.14
$-23

uniqueidentifier 定数

uniqueidentifier 型定数は、GUID 値を表す文字列です。 文字型または binary 型文字列の形式で指定できます。

次の例は、両方とも同じ GUID を指定しています。

'6F9619FF-8B86-D011-B42D-00C04FC964FF'
0xff19966f868b11d0b42d00c04fc964ff

負と正の数値を指定する

数値が正であるか負であるかを示すには、数値型定数に + または - 単項演算子を付加します。 これにより、符号付き数値を表す数値式が作成されます。 + または - 単項演算子が付加されない場合、数値定数は正になります。

署名 integer 式。

+145345234
-2147483648

署名 decimal 式。

+145345234.2234
-2147483648.10

署名 float 式。

+123E-3
-12E5

署名 money 式。

-$45.56
+$423456.99

拡張照合順序

データベース エンジン は、拡張照合順序をサポートする文字および Unicode 文字列定数をサポートしています。 詳細については、COLLATE (Transact-SQL) 句に関する記事を参照してください。

こちらもご覧ください