28

一重引用符を使用して列名をエイリアスする人を見たことがあります。

select orderID 'Order No' from orders

その他は角括弧を使用します。

select orderID [Order No] from orders

私は角括弧を使用する傾向があります。好み/違いはありますか?

4

5 に答える 5

6

's が有効かどうかは、有効な設定によって異なります。そして、あなたは逃しました"区切り識別子を参照してください。

QUOTED_IDENTIFIER が ON に設定されている場合、SQL Server は、SQL ステートメントでの二重引用符 (") および単一引用符 (') の使用に関する ISO 規則に従います。次に例を示します。

  • 二重引用符は、識別子を区切るためにのみ使用できます。文字列の区切りには使用できません。

  • 文字列を囲むには、単一引用符を使用する必要があります。識別子を区切るために使用することはできません。


QUOTED_IDENTIFIER が OFF に設定されている場合、SQL Server は一重引用符と二重引用符に次の規則を使用します。

  • 識別子を区切るために引用符を使用することはできません。代わりに、括弧を区切り文字として使用する必要があります。

  • 文字列を囲むには、一重引用符または二重引用符を使用できます。

そして最後に:

括弧内の区切り文字は、QUOTED_IDENTIFIER の設定に関係なく、常に使用できます。

上記のすべての引用符で、ブラケットについて言及しているときは、ブラケットについて話しているところです[]

于 2013-10-29T11:51:57.823 に答える
5

一重引用符はより読みやすくなります。上に示したように、赤で強調表示されています。

MySQL は「バックティック」を使用して特殊文字をエスケープします。

MSSQL では、識別子 (テーブル、列など) に「二重引用符」または [大括弧] を使用し
、文字列またはエイリアスに「一重引用符」を使用できます。

角括弧は主に、スペース、ピリオド、ハイフンなどの特殊文字が構文エラーをスローしないようにオブジェクトをカプセル化するために使用されます。

列のエイリアスの前に「as」キーワードを使用することをお勧めします。これにより、はるかに読みやすくなります。

select [column with spaces] as 'my col' from "table with spaces" where n = 'foo'
select "column with spaces" as 'my col' from [table with spaces] where n = 'foo'
于 2013-10-29T11:51:42.380 に答える