4

SQL Server テーブル内のすべてを選択しようとしている興味深い状況がありますが、SQL ではなく古い会社の API を介してテーブルにアクセスするだけで済みます。この API は、テーブル名、フィールド名、および値を要求します。次に、次のようにかなり簡単にプラグインします。

select * from [TABLE_NAME_VAR] where [FIELD_NAME_VAR] = 'VALUE_VAR';

= 記号を != などに変更することはできません。それらの変数のみです。これがひどいことに聞こえることはわかっていますが、多くのフープを経ずに API を変更することはできません。

このテーブルには、すべて数値、すべて文字列であり、null 以外に設定されている複数の列があります。テーブル内のすべてを返すこの API 関数に渡すことができる値はありますか? おそらく、それが数値である、数値ではない、文字列である、*、null でないなどを意味する定数または特別な値でしょうか? 何か案は?

4

4 に答える 4

2

この VALUE_VAR を渡そうとするかもしれません

1'' or ''''=''

そのまま使用し、動的 ​​SQL として実行すると、次のようになります。

SELECT * FROM tab WHERE fieldname = '1' or ''=''
于 2013-08-19T21:36:04.430 に答える
2

API が定数の代わりに列名を許可する場合、

select * from [TABLE_NAME_VAR] where [FIELD_NAME_VAR] = [FIELD_NAME_VAR] ;
于 2013-08-18T16:23:12.583 に答える