0

この例では、T-SQL 構文と 1 つの select ステートメントを使用して行 BB、DD、および FF のみを取得できますか?

C1 | C2 | C3 | C4
-----------------
AA | KK | 11 | 99
BB | KK | 11 | 99   
CC | KK | 22 | 99
DD | KK | 22 | 99
EE | KK | 33 | 99
FF | KK | 33 | 99

わかりましたので、これは私の問題を解決するために最終的に得たものです: SELECT 個別の [C4], [C1], [C2], [C3] FROM [Table] where [C4] = 'MyValue' order by [C3] desc .

4

3 に答える 3

2

これを試してみてください:

SELECT C1, C2, C3, C4 FROM mytable WHERE C1 IN ('BB', 'DD', 'FF')

C3 列を一意にする場合、クエリは次のようになります。

SELECT MAX(C1), C2, C3, C4 FROM mytable GROUP BY C2, C3, C4
于 2013-08-12T23:23:01.453 に答える
1

これを試して

SELECT t.C1, t.C2, t.C3, t.C4 FROM 
(
    SELECT *,
             ROW_NUMBER() OVER (PARTITION BY C3 ORDER BY C1 DESC) AS seqnum
    FROM MyTable
) t
WHERE seqnum = 1
于 2013-08-13T04:06:52.097 に答える
1

これはあなたの特定の例でうまくいきます:

SELECT
  C1 = MAX(C1),
  C2,
  C3,
  C4
FROM atable
GROUP BY
  C2,
  C3,
  C4
;

正しい値をC1取得するよりも複雑なロジックに従うMAX()必要がある場合は、おそらく@bvr の提案ORDER BYを使用する必要があります (句を適切に調整します)。

于 2013-08-13T06:40:09.373 に答える