これは私の現在のSELECT
文です:今selectステートメントの1つの列の値を使用して結合の列を表示する方法はありますか。
SELECT DISTINCT [QVD/CSV Names] AS 'CSV/Excel Files',
[SourceTypeID],
CASE
WHEN substring([QVD/CSV Names], len([QVD/CSV Names]) - 3, 4) = '.csv' THEN 'CSV'
WHEN substring([QVD/CSV Names], len([QVD/CSV Names]) - 3, 4) = '.xls' THEN 'Excel'
WHEN substring([QVD/CSV Names], len([QVD/CSV Names]) - 4, 5) = '.xlsx' THEN 'Excel'
END
AS [Source Types]
FROM STG_QVDs
LEFT OUTER JOIN SourceTypes AS c
ON [Source Types] = c.[SourceTypeName]
WHERE [QVD/CSV Names] IS NOT NULL
AND substring([QVD/CSV Names], len([QVD/CSV Names]) - 3, 4) <> '.qvd'
、私は3つの列があります。 1つの列には、ファイル名CSV/Excel Files
が表示されます。もう1つは、ソースのID(case文を使用して別の列のその場で生成しています)を表示することです。列はデータベースにないので、そこに作成する必要がありました。これが私が立ち往生した場所です。私は[Source Types]
列を表示したくありません。私はちょうどCSV/Excel Files
とSourceTypeID
がほしいです。生成された列を使用して行の適切なIDを表示できる方法はありますか?
これは、SourceTypesルックアップテーブルを調べる方法です。
SourceTypeID SourceTypeName
------------ --------------
1 CSV
2 Excel
これは、表示される内容である:
CSV/Excel Files Source Types
--------------- ------------
file1.csv CSV
file2.xls Excel
私はディスプレイにそれをしたい:それは、列の別名を参照しようとしているため
CSV/Excel Files SourceTypeID
--------------- ------------
file1.csv 1
file2.xls 2
これはどのSQLですか? SQLite? MySQL? –
私は、サンプルデータと望みの結果が本当にあなたがしたいことを説明するのに役立つと思います。列を表示しない場合は、列を削除するだけです。 –
@ ObinnaNwakwue、申し訳ありません、私は今それをタグ付けしました。それはSQL Serverです。 – Leon