-2

SQL Server を使用して、クエリ結果の最初の出現にラベルを付けようとしているので、このような結果については...

ここに画像の説明を入力

次のように、それぞれの最初のものを識別できます。

ここに画像の説明を入力

これはケースステートメントまたは類似のもので行うことができますか? 大変助かりました!

ありがとう

4

3 に答える 3

1

これは、CTE (SQL 2005 以降) と over 句およびランキング関数を使用して行うことができます。

Breakfastあなたが最初に見たいものに関して他の基準があると思います. を使ってそれORDER BYを指定してください.

RowNumberその後、それが何回発生したかを教えてください。

あなたが適応するための以下の例

DECLARE @tbl TABLE (
    Breakfast VARCHAR(10) 
); 

INSERT INTO @tbl VALUES ('Eggs')
INSERT INTO @tbl VALUES ('Fish')
INSERT INTO @tbl VALUES ('Fish')
INSERT INTO @tbl VALUES ('Eggs')
INSERT INTO @tbl VALUES ('Bacon')
INSERT INTO @tbl VALUES ('Bacon')
INSERT INTO @tbl VALUES ('Eggs')
INSERT INTO @tbl VALUES ('Fish')
INSERT INTO @tbl VALUES ('Bacon')

;WITH t AS (
   SELECT *, ROW_NUMBER() OVER (PARTITION BY Breakfast ORDER BY Breakfast) AS RowNumber
   FROM @tbl 
)
SELECT Breakfast, (CASE WHEN RowNumber = 1 THEN 1 ELSE 0 END) As FirstOccurance
FROM t 
于 2013-10-07T08:35:56.737 に答える