1

同じテーブル内の別の列の特定の値を選択した後、列をフィルタリングしたいので、@...特殊文字の後に列の名前を使用して、この値のアドレスを取得しようとしました。

私のSQLステートメントは次のようなものです:

SELECT ATTRIBUTE FROM TABLE WHERE FIELD = '@FIELDNAME';

の代わりに特定の値を使用した場合@FIELDNAME、それは正しく機能しますが、静的ですが、選択した値に基づいて動的である必要があります。

4

2 に答える 2

1

FIELDNAMEにある値のリストを持ち、各レコードに一意のIDを与える別のテーブルを作成し、選択した内容に応じて、「@...」が前に付いた新しいテーブルのフィールドの名前で値を取得します。

それがあなたが何を探しているのかわかりません、私に知らせてください。

于 2012-12-06T09:48:28.077 に答える
0

トリガーが許可されていない場合date/time、テーブルに列がありますか?とにかくその余分な列を作成して、新しく挿入された行の時刻を確認することはできますか?

入力された最後の行を確認し、そのfield値を変数に保存する必要がある場合があります。次にselect、変数値に基づいて実行します。

あいまいな最後の行IDに基づいて、次のことを試すことができます(きれいではありません)。しかし、繰り返しになりますが、日付/時刻がある場合は、より正確です。

select attribute from table 
where field = (select field from table 
where rowid =(select max(rowid) from table))
;

upate 挿入コマンドを次のように設定する権限がありますか。

insert into table (id, col1, col2,...) values (1,'something', 'something',...)
returning id into variable; -- you may either save field or id depending on your table

次に、これを使用しvariableて必要なレコードを選択できます。

于 2012-12-02T11:27:06.683 に答える