トップ > Tech > SQL > 備忘録

備忘録

SQL Server 2005 における SQL 文の備忘録

結合を併用した UPDATE

UPDATE a SET a.変更列 = b.参照列
FROM a INNER JOIN b ON a.結合列 = b.結合列

集計関数における条件分岐

SELECT SUM(CASE WHEN xxx = 1 THEN 1 ELSE 0 END) AS abc
FROM t1 GROUP BY yyy

ROW_NUMBER を用いた絞り込み

SELECT a.id, a.rownumber
FROM  (
  SELECT *, ROW_NUMBER() OVER (ORDER BY t.id) AS rownumber
  FROM t_test AS t
  WHERE (t.id > 1000)
) AS a
WHERE a.rownumber BETWEEN 1 AND 10
ORDER BY a.id
  • MSDN の ROW_NUMBER() の項のコードでは「列名 'rownumber' は無効です。」などと言われて、WHERE 句での絞り込みができない。
  • 上記のように副クエリにしてやるとうまくいく。

副クエリを利用した DELETE

DELETE FROM t_xxxx WHERE (id IN (SELECT id FROM t_yyyy))
(2010/03/25 17:26:31)
関連ページ
5465
プロフィール

Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。 好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。 詳しくは Web mixi で。

Bookmark and Share