4

次のスニペット コードがあります。

WHERE (Person.WorkGroupId = 2 or Person.RoleId = 2)

私がやりたいことは、これがWorkGroupIdPerson テーブルで 2 の最初のオカレンスを返すことです。ただし、 が 2 の人がいない場合は、Person テーブルでWorkgroupId最初に出現する 2 を選択します。RoldId

ありがとう

4

3 に答える 3

7

それだけを使用すると、複数のレコードが取得されます。

私は次のようにします:(問題のテーブルは一度だけスキャンされます)

Select top 1 *
From dbo.SomeTable
where WorkGroupId=2 or RoleId=2
Order by case 
   when WorkGroupId=2 then 1 
   when RoleId=2 then 2 
end
于 2013-08-13T20:33:37.610 に答える