私のテーブルの名前は次のように表示されます。
Select fname-ab, fname-wxyz, lname-ab, lname-wxyz
From table
フィールド名が で終わるすべてのフィールドから結果を返すクエリを作成する方法はありますか?-ab
私のテーブルの名前は次のように表示されます。
Select fname-ab, fname-wxyz, lname-ab, lname-wxyz
From table
フィールド名が で終わるすべてのフィールドから結果を返すクエリを作成する方法はありますか?-ab
ほとんどのデータベースは、information_schema.columns テーブルをサポートしています。次のクエリを実行して、基準を満たすすべての列を取得できます。
select column_name
from information_schema.columns
where table_name = 'table' and column_name like '%ab'
次に、このリストを Excel に入力し、最後にコンマを追加する式を作成し、リストを SQL インターフェイスにコピーして、構文を修正します (追加select
、追加from
、リストから最後のコンマを削除)。
これは実際には、説明するよりも実行する方が簡単です。
または、何らかの形式の動的 SQL を使用できますが、その説明はデータベースによって異なります。
これはうまくいくでしょう...
Declare @tableSchema Varchar(50) = 'dbo',
@tableName Varchar(50) = 'table',
@columns Nvarchar(Max),
@sql Nvarchar(Max)
Select @columns = Coalesce(@columns + ',','') + '[' + sc.name + ']'
From syscolumns sc
Join sysobjects so
On sc.id = so.id
Join sys.schemas ss
On so.[uid] = ss.[schema_id]
Where so.name = @tableName
And ss.name = @tableSchema
And sc.name like '%-ab'
Set @sql = 'Select ' + @columns + '
From [' + @tableSchema + '].[' + @tableName + ']'
Exec sp_executesql @sql