夏椰の東屋

- お遊び記録 -

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  108  : 記事  1  : コメント  3916  : トラックバック  30

ニュース


落書きしてね♪

IAM
僕がとった写真です。
ご自由にお使いください。

フィードメーター - 夏椰の東屋 track feed
広告


記事カテゴリ

書庫

日記カテゴリ

Other Site From Kaya

SQLServerでランダム結果取得でNEWID()を使用する方法はよくあると思います。

ただ、NEWIDの戻り値はuniqueidentifier型の列なので
「0~100」の範囲でランダムな値を取得したいなどといった用途にはちょっと使いにくいかと思います。

そこで、NEWID()と以前の記事で書いたgenerate_seriesを組み合わせて、
「0~100」の範囲でランダムな値を1つ取得するSQLを書きたいと思います。

select top 1 NEWID() as nid , num from generate_series(1,100,1) order by nid 

結果は以下のようになります。
ただしランダム故にいつもこの結果とは限りませんが(^^)
nid num
13D5E354-7230-4257-9994-069DE1A87664 32

このままではnidが邪魔なので、numだけを取得するように書き加えます。
  • その1(WITH句使用版)
  • 
    with rndquery as 
    ( select top 1 NEWID() as nid , num from generate_series(1,100,1) order by nid )
    select num from rndquery
    

  • その2(FROM句での指定版)
  • 
    select num from ( select top 1 NEWID() as nid , num from generate_series(1,100,1) order by nid ) t
    

  • その3(FROM句でのテーブル直積版)
  • 
    select top 1 num from generate_series(1,100,1), ( select NEWID() as nid) t order by nid
    


    どのクエリが良いか気になったので実行プランをとって見たところ
    この場合、どのクエリも同じコストでした。(^^)
    実行プラン

    久々の技術関連はまずこの程度の文章でおゆるし下さいm(__)m

 

実はこれが次の奴にちょっと出てくるのは内緒

投稿日時 : 2007年10月11日 13:57

コメント

# 付加列インデクスで遊んでみました。 2007/10/11 14:38 夏椰の東屋
付加列インデクスで遊んでみました。

# re: ランダムで遊んでみた 2007/10/12 9:51 けろ
これは、なかなか、イケてますね。
コストがどれも同じだったのは、意外でした。
(その3のコストが少し悪いかなと予想していただけに)


# ランダムで遊ぶ&CLOSS APPLYで遊ぶ 2007/12/06 17:14 夏椰の東屋
ランダムで遊ぶ&CLOSS APPLYで遊ぶ

# IWPTdkZBiVEuuf 2011/12/13 18:10 http://www.birthcontrolremedy.com/birth-control/cl
Last a few years has been to Ibiza, so met a person there whose style of presentation is very similar to yours. But, unfortunately, that person is too far from the Internet!...

# zeYwxQEehxFWTY 2011/12/22 22:25 http://www.discreetpharmacist.com/ger/index.asp
Left on my site a link to this post. I think many people will be interested in it..!

# GwBNsZnbqPTpX 2012/01/04 5:32 http://www.kosherbeefjerky.com/
EkYaeP Yeah !... life is like riding a bicycle. You will not fall unless you stop pedaling!!...

Post Feedback

タイトル
名前
Url:
コメント