掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
乱数を振り当てランダムにある一定数のデータを取得するには? (ID:36652)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
GTRさんの UPDATE TABLE1 SET FLAG = '1' Where to_number(ID) in (Select Trunc(dbms_random.value*1000) as rand from TABLE1 where rownum <= 30) をOracleのSQL Plusで実行した場合は、実行できますでしょうか? 実行できたのなら、この更新SQLをDelphiで書いた場合。 begin s_number := editNUMBER.Text; s_koumoku := editKOUMOKU.Text; with query1 do begin sql.clear; sql.add('Update Table1'); sql.add('Set FLAG = ''1'''); sql.add('Where to_number(ID) in'); sql.add('(Select Trunc(dbms_random.value*1000) as rand from TABLE1 where rownum <= :value1)'); sql.add(' and KOUMOKU = :value2'); > params[0].AsString := s_number; 上のSQL文から判断すると、rownumは整数型だと思えますので、 params[0].AsInteger := StrToIntDef(s_number,0); params[1].AsString := s_koumoku; execsql; end; end となります。 TDBGridのOptionのdgRowSelect=True,dgMultiSelect=Trueとして、 複数行を選択した場合の処理。 var //変数宣言 I : Integer; with DBGrid1 do for I := 0 to SelectedRows.Count - 1 do begin GotoBookmark(pointer(SelectedRows.Items[I])); //DBGrid1のDatasetに対するFlgを立てる処理 end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.