Constants (Transact-SQL)

適用対象:yesSQL Server Analytics Platform System (PDW) YesYesAzure SQL Database Azure SQL Managed Instance yesyesAzure Synapse Analytics (すべてのサポートされているバージョン)

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

文字列定数

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

Note

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

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

単一引用符で囲まれた文字列に単一引用符を埋め込む場合は、単一引用符を 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 つのスペースと見なされます。

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

Note

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 文字列定数は、拡張照合順序をサポートします。

Note

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 定数は整数である必要があります。 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、money を表す文字列に 3 桁ごとにコンマ (,) を挿入するなどのグループ化規則は適用しません。

Note

コンマは、指定した任意の場所無視 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) 句を参照してください。

こちらもご覧ください

データ型 (Transact-SQL)
式 (Transact-SQL)
演算子 (Transact-SQL)照合順序と Unicode のサポート
照合順序の優先順位