1

私のテーブルの名前は次のように表示されます。

Select fname-ab, fname-wxyz, lname-ab, lname-wxyz
From table

フィールド名が で終わるすべてのフィールドから結果を返すクエリを作成する方法はありますか?-ab

4

2 に答える 2

3

ほとんどのデータベースは、information_schema.columns テーブルをサポートしています。次のクエリを実行して、基準を満たすすべての列を取得できます。

select column_name
from information_schema.columns
where table_name = 'table' and column_name like '%ab'

次に、このリストを Excel に入力し、最後にコンマを追加する式を作成し、リストを SQL インターフェイスにコピーして、構文を修正します (追加select、追加from、リストから最後のコンマを削除)。

これは実際には、説明するよりも実行する方が簡単です。

または、何らかの形式の動的 SQL を使用できますが、その説明はデータベースによって異なります。

于 2013-01-22T21:41:10.843 に答える
0

これはうまくいくでしょう...

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
于 2013-01-22T23:03:26.950 に答える