SQL server:CAST でIDつくるとき

CAST でID をつくるとき、長さを指定しない場合、30バイト(30半角文字)しか格納してくれない。
一つの変数の長さが30バイトを超えていることは稀だが、
IDの一部を作ったものをさらにCASTする場合は、長さに余裕を持たせておかないと途中で打ち切られる事故が起きうる。
join の失敗にもつながるので、コードが多少長くなっても変数ごとにCAST を通してIDを作ったほうが安全そうという教訓でした。

以下のページから。
www.projectgroup.info

SQL server でランダムサンプリング(同じ結果を担保)

結構手こずったので

1、乱数を発生(今回は 0~99)

このブログの rnd5 をABS(CHECKSUM(RAND(id)) % 100)と、10から100に変更する。
qiita.com

2、乱数の値を WHERE で指定する

SELECT *
FROM table
WHERE ABS(CHECKSUM(RAND(id)) %100) < 20

こうすれば 20%分とってくることができます。
TABLESAMPLE は元々あるテーブルにしか適用できませんでした。
なので、特定の条件下の人についてのランダムサンプリングには使えません。なむなむ