C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: SQL ランダムに取得して更新


(過去ログ 173 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■99848 / inTopicNo.1)  SQL ランダムに取得して更新
  
□投稿者/ てつ (1回)-(2022/06/13(Mon) 13:28:07)

分類:[その他の言語] 

SQLについての質問なのですが、別のテーブルにある値をランダムに取得して更新するにはどのようなコードが考えられますか?
言語はSQLserverです。


引用返信 編集キー/
■99849 / inTopicNo.2)  Re[1]: SQL ランダムに取得して更新
□投稿者/ 魔界の仮面弁士 (3399回)-(2022/06/13(Mon) 13:36:57)
No99848 (てつ さん) に返信
> SQLについての質問なのですが、別のテーブルにある値をランダムに取得して更新するにはどのようなコードが考えられますか?
> 言語はSQLserverです。

ランダムな値を生成するのならば RAND 関数ですが、
今回はランダムな行を拾ってくる…という意図でしょうか。


テーブル内の件数がそれほど多くない場合には、
 SELECT TOP 3 * FROM テーブル ORDER BY NEWID()
のようにできます。TOP の 後ろには取得したい件数を書きます。

テーブルの件数が多い場合は、こちらを参考にしてみてください。
https://sqlazure.jp/r/sql-server/393/
引用返信 編集キー/
■99851 / inTopicNo.3)  Re[2]: SQL ランダムに取得して更新
□投稿者/ てつ (3回)-(2022/06/13(Mon) 13:48:31)
No99849 (魔界の仮面弁士 さん) に返信
> ■No99848 (てつ さん) に返信
>>SQLについての質問なのですが、別のテーブルにある値をランダムに取得して更新するにはどのようなコードが考えられますか?
>>言語はSQLserverです。
>
> ランダムな値を生成するのならば RAND 関数ですが、
> 今回はランダムな行を拾ってくる…という意図でしょうか。
>
>
> テーブル内の件数がそれほど多くない場合には、
>  SELECT TOP 3 * FROM テーブル ORDER BY NEWID()
> のようにできます。TOP の 後ろには取得したい件数を書きます。
>
> テーブルの件数が多い場合は、こちらを参考にしてみてください。
> https://sqlazure.jp/r/sql-server/393/

返信ありがとうございます
UPDATE SM
SET SM_SBMCD =
(
SELECT TOP 58 SBM_CD
FROM SBM
ORDER BY NEWID()
)
メッセージ 512、レベル 16、状態 1、行 89
サブクエリは複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後に続く場合や、サブクエリが 1 つの式として使われる場合は複数の値は許可されません。
というエラーが出ました


引用返信 編集キー/
■99867 / inTopicNo.4)  Re[3]: SQL ランダムに取得して更新
□投稿者/ p (3回)-(2022/06/13(Mon) 17:48:12)
No99851 (てつ さん) に返信
> ■No99849 (魔界の仮面弁士 さん) に返信
>>■No99848 (てつ さん) に返信
> >>SQLについての質問なのですが、別のテーブルにある値をランダムに取得して更新するにはどのようなコードが考えられますか?
> >>言語はSQLserverです。
>>
>>ランダムな値を生成するのならば RAND 関数ですが、
>>今回はランダムな行を拾ってくる…という意図でしょうか。
>>
>>
>>テーブル内の件数がそれほど多くない場合には、
>> SELECT TOP 3 * FROM テーブル ORDER BY NEWID()
>>のようにできます。TOP の 後ろには取得したい件数を書きます。
>>
>>テーブルの件数が多い場合は、こちらを参考にしてみてください。
>>https://sqlazure.jp/r/sql-server/393/
>
> 返信ありがとうございます
> UPDATE SM
> SET SM_SBMCD =
> (
> SELECT TOP 58 SBM_CD
> FROM SBM
> ORDER BY NEWID()
> )
> メッセージ 512、レベル 16、状態 1、行 89
> サブクエリは複数の値を返しました。サブクエリが =、!=、<、<=、>、>= の後に続く場合や、サブクエリが 1 つの式として使われる場合は複数の値は許可されません。
> というエラーが出ました
>
>

ループ文で解決しました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -