同じテーブル内の別の列の特定の値を選択した後、列をフィルタリングしたいので、@...
特殊文字の後に列の名前を使用して、この値のアドレスを取得しようとしました。
私のSQLステートメントは次のようなものです:
SELECT ATTRIBUTE FROM TABLE WHERE FIELD = '@FIELDNAME';
の代わりに特定の値を使用した場合@FIELDNAME
、それは正しく機能しますが、静的ですが、選択した値に基づいて動的である必要があります。
同じテーブル内の別の列の特定の値を選択した後、列をフィルタリングしたいので、@...
特殊文字の後に列の名前を使用して、この値のアドレスを取得しようとしました。
私のSQLステートメントは次のようなものです:
SELECT ATTRIBUTE FROM TABLE WHERE FIELD = '@FIELDNAME';
の代わりに特定の値を使用した場合@FIELDNAME
、それは正しく機能しますが、静的ですが、選択した値に基づいて動的である必要があります。
FIELDNAMEにある値のリストを持ち、各レコードに一意のIDを与える別のテーブルを作成し、選択した内容に応じて、「@...」が前に付いた新しいテーブルのフィールドの名前で値を取得します。
それがあなたが何を探しているのかわかりません、私に知らせてください。
トリガーが許可されていない場合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
て必要なレコードを選択できます。