1

次のコードがあるとします。

DECLARE @IncludeDuplicateAddressIDs tinyint

-- Value of @IncludeDuplicateAddressIDs set here ! --

IF(@IncludeDuplicateAddressIDs = 1)
     SELECT AddressIds FROM RTS.ADDRESSES
ELSE
     SELECT DISTINCT(AddressIds) FROM RTS.ADDRESSES

SELECT2 つのステートメントを 1つに結合できますか? つまり、 を 1 つだけ使用してSELECT、すべての AddressID を表示するか、それぞれの ?

4

5 に答える 5

0

sp_executesql動的 sql を使用して、クエリを文字列として形成し (必要な数の列を設定)、それを実行できます。

DECLARE @IncludeDuplicateAddressIDs tinyint
DECLARE @Columns varchar(500);  

IF(@IncludeDuplicateAddressIDs = 1) SET @Columns='AddressIds'
ELSE SET @Columns='DISTINCT(AddressIds)'

EXECUTE sp_executesql N'SELECT ' + @Columns +  'AddressIds FROM RTS.ADDRESSES';
于 2013-04-18T11:03:49.193 に答える
0

重複するアドレスの数を含めることができます。

SELECT AddressIDs, count(*) as cnt
FROM RTS.ADDRESSES
GROUP BY AdressIDs
于 2013-04-18T10:57:51.843 に答える