2009-02-26 9 views
1

テーブルからいくつかの行を選択したい。SQLクエリ+出力のデフォルトフィールド

クエリ結果から戻ってくる通常の列に加えて、結果セットにいくつかの追加フィールドも追加する必要があります。

テーブルをcsvファイルにエクスポートしています。出力ファイルには、クエリから返された通常の列の値とともにいくつかの余分なフィールドがあります。元テーブルについて

は ABC
11ボブSを有し、カラムA、B、およびCを有する
12ゲイリーJ
13アンディK

今私の出力ファイルが

有していなければなりません11、Bob、S、 "DDD"、1
12、Gary、J、 "DDD"、2
13、Andy、K、 "DDD"、3

は、私は、クエリ自体に余分な2つの値を得ることができる方法はあり

(一つの方法は、最初TEST_TABLEからA、B、Cを選択しますし、手動で2つのフィールドを追加することで、ファイルを操作することでした)ハードコードされた値として?

答えて

0
SELECT A, B, C, 'DDD' as "D", 1 as "E" 
FROM myTable 
WHERE ... 

1,2,3は、ハードコーディングされていますか、これを増分する必要がありますか?

+0

1,2,3は増分である必要があります –

0

はい、実際これはかなり簡単です。 SELECT field1、field2、 'Default' ASフィールド3、 'Default2' ASフィールド4 FROM table WHERE ...

1

ここでは、サブクエリを使用して増分値を取得できます。これは...私はあなたの質問や、実際にあなたの最終目標を達成するためのより良い方法によりがある感じを持っている。これは、盲目的にあなたの質問に答えている列A

SELECT 
    A, 
    B, 
    C, 
    'DDD' [D], 
    (SELECT COUNT(*) FROM test_table test_table2 WHERE test_table2.A <= test_table.A) [E] 
FROM 
    test_table 
ORDER BY 
    A 

にすることによって順序と一意の値に依存しています。

0

あなたは、疑似列、ROWNUMまたはROW_NUM

でOracleとインクリメントフィールドを取得することができ、私は忘れておきます。しかし、これは他のデータベースとは異なります。罰金を行う必要がありますROWNUMBER機能を使用して、SQL Serverの2005+を使用している場合

4

を見て。

SELECT A, B, C, 'DDD' AS D, 
ROW_NUMBER() OVER (ORDER BY A) AS E 
FROM Table 
0

私は最後のフィールドは、行カウンタでgussingだし、データベースを指定していないが、Oracleのために、これは動作するはずです:

はA、B、C、 'DDD' を選択し、ROWNUM from ex;

関連する問題