私はテーブルを持っていますGrowDaysLocation
。この表には、DistrictId
およびに関する2つのレコードがあります。RegionId
すなわち;
RegionId=1
とDistrictId = NULL
RegionId=1
とDistrictId = 1
の行が存在しない場合はRegionId = 1 and DistrictId = 1
、の行を取得するという条件がありRegionId = 1 and DistrictId = NULL
ます。
単一のクエリを使用してこれをどのように達成できますか?
以下は私が試したクエリです。
このクエリでは、Where句でCASEを使用し、サブクエリを使用して行の存在を確認しましたが、問題は、行が返されない場合からNULLを返す場合です。
==================================================
SET ANSI_NULLS OFF
Select * From GrowDaysLocations
Where DistrictId =
( CASE WHEN (Select Count(*) From GrowDaysLocations
Where RegionId = '38D95A68-4A92-4D11-9A88-464CF1492880' AND DistrictId = 'F4B67A07-1BF7-42F5-9F19-77329A215D8B' AND
GrowDaysProfileId = '79F8BDBF-67D3-44A7-A790-1C10EE8B2AD0') > 0 THEN DistrictId
ELSE
NULL
END
)
AND RegionId = '38D95A68-4A92-4D11-9A88-464CF1492880' AND GrowDaysProfileId = '79F8BDBF-67D3-44A7-A790-1C10EE8B2AD0'
===========================================