3

次のようなSQLテーブルがあります

Desc   code1   code2   type1  type2
-------------------------------------    
desc1  123     234     T       M
desc2  444     421     T       M
desc3  491     212     T 
desc4  322     211     T
desc5  333     312     T

今、私は毎回最初の2つのレコードを選択し、いくつかの条件に基づいて残りの3つのレコードから1つを選択する必要があります.このテーブルから最初、2番目、残りの3つから1つのレコードのみを選択する方法...助けてください

4

2 に答える 2

8
SELECT TOP 2 * FROM table ORDER BY (something)
UNION ALL
SELECT TOP 1 * FROM table WHERE (something) (maybe ORDER BY something)

または、上位 2 が type2=M のレコードを意味する場合:

SELECT TOP 2 * FROM table WHERE type2='M'
UNION ALL
SELECT TOP 1 * FROM table WHERE (something)

または、上位 2 位とランダムな 3 位が必要な場合は、

SELECT TOP 2 * FROM table WHERE type2='M'
UNION ALL
SELECT TOP 1 * FROM table WHERE type2<>'M' ORDER BY NEWID()
于 2013-05-29T05:00:39.747 に答える
0
  トップを選択 (2)* TOPP から
  連合
  SELECT TOP(1) * TOPP A から
  WHERE A.DESC NOT IN (SELECT TOP((SELECT COUNT(*) FROM TOPP)-3) DESC FROM TOPP)

テーブル名 = トップ

于 2013-05-29T06:50:31.727 に答える