1

次のテーブルがあるとします。

CREATE TABLE tbl (ID INT, Type UNIQUEIDENTIFIER)
INSERT tbl VALUES
(1, N'D9D09D5B-AF63-484C-8229-9762B52972D0'),
(2, N'D9D09D5B-AF63-484C-8229-9762B52972D6'),
(3, N'D9D09D5B-AF63-484C-8229-9762B52972D9'),
(3, N'D9D09D5B-AF63-484C-8229-9762B52972D2'),
(4, N'D9D09D5B-AF63-484C-8229-9762B52972D0')

個別の ID 列だけでなく、それに関連付けられている Type 列の値も選択する必要があります。私が次のことをした場合:

select distinct id, type from tbl

これだけが必要な場合は、テーブル全体を返します。

1, N'D9D09D5B-AF63-484C-8229-9762B52972D0'
2, N'D9D09D5B-AF63-484C-8229-9762B52972D6'
3, N'D9D09D5B-AF63-484C-8229-9762B52972D9'
4, N'D9D09D5B-AF63-484C-8229-9762B52972D0'

簡単なものに違いないことはわかっていますが、ここで何が欠けているのでしょうか?

4

2 に答える 2

3

As per you comment you need to want to select first type in the list. So you can achieve this by using subquery like this:

SELECT id, (SELECT TOP 1 type FROM tbl a WHERE id = b.id)
FROM tbl b GROUP BY id

See this SQLFiddle

于 2012-08-18T06:46:16.527 に答える
2
select id, min(type) from tbl group by id
于 2012-08-18T06:45:10.403 に答える