0

今日、私は次のようなクエリを見つけました

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] 

どんな助けでも大歓迎です

4

2 に答える 2

3

あなたの質問:

SELECT 1 [Col_name] FROM MyTable

1エイリアス付きのリテラル値を返しますcol_namecol_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)のみが提供されます。1col1SELECT 2 Col1 FROM [Table1]2col1UNION

ライブデモ

于 2012-11-19T13:53:48.657 に答える
1

実際のクエリでCol1は、値が。の列のエイリアスと呼ばれます1

指定されていない場合Col1、値が指定された列に1はcolumnNameがありません。

于 2012-11-19T13:53:13.607 に答える