1
create table TABLE1(
column1 varchar (100),
column2 varchar (100)
)
go
create table TABLE2(
column_for_compare varchar (100)
)
go
insert into TABLE2 values ('column1')
insert into TABLE2 values ('column2')
go

次のような TABLE1 列名が TABLE2 に存在するかどうかを確認したい - これは、TABLE2 の行の値を TABLE1 の列名と比較する必要があります。

存在する場合 (TABLE2 から column_for_compare を選択) および存在する場合 (syscolumn から column_name を選択 key join systable where table_name ='TABLE1') begin print 'match found' end

私が何をしようとしているのかわかるといいのですが...そうでない場合は...もっとよく説明しようとします

4

2 に答える 2

0

このクエリは、TABLE1 の列である TABLE2 の値のみを返します。TABLE2 の各行を反復処理するか、TABLE2 のすべての値を比較するようにクエリを変更する必要があるため、クエリを変更せずに PRINT 'Match Found' を実行することはできません。

SELECT
    *

FROM
    TABLE2
    JOIN INFORMATION_SCHEMA.COLUMNS
        ON  TABLE2.column_for_compare = COLUMNS.COLUMN_NAME

WHERE
    COLUMNS.TABLE_NAME = 'TABLE1'
于 2014-10-16T10:07:58.480 に答える