今日、私は次のようなクエリを見つけました
SELECT 1 [Col_name] FROM MyTable
と
SELECT [Col_name] FROM MyTable
どちらも同じ結果を返すようです。私は混乱しています。
これが実際のクエリです。
SELECT 1 Col1 FROM [Table1] WHERE Col1 = 1
UNION
SELECT 2 Col1 FROM [Table1]
どんな助けでも大歓迎です
今日、私は次のようなクエリを見つけました
SELECT 1 [Col_name] FROM MyTable
と
SELECT [Col_name] FROM MyTable
どちらも同じ結果を返すようです。私は混乱しています。
これが実際のクエリです。
SELECT 1 Col1 FROM [Table1] WHERE Col1 = 1
UNION
SELECT 2 Col1 FROM [Table1]
どんな助けでも大歓迎です
あなたの質問:
SELECT 1 [Col_name] FROM MyTable
1
エイリアス付きのリテラル値を返しますcol_name
。col_name
テーブル内の識別子であっても。
でも:
SELECT [Col_name] FROM MyTable;
テーブルから選択col_name
します。
同じ:
SELECT 1 Col1 FROM [Table1] WHERE Col1 = 1
UNION
SELECT 2 Col1 FROM [Table1]
2行のみが表示されます。
1
2
表の値に関係なく。エイリアスを使用してリテラル値を返すSELECT 1 Col1 FROM [Table1] WHERE Col1 = 1
ため、(Distinct select )set演算子を使用して同じエイリアスを使用してリテラル値を 返します。これらは唯一の個別の値であるため、2つの値(1、2)のみが提供されます。1
col1
SELECT 2 Col1 FROM [Table1]
2
col1
UNION