私が知っている、これはマイナーですが、スティーブン・ホワイトのソリューションは、個別のカウント数を含めるように、わずかにする必要があります:
COUNT (DISTINCT LISTName)
あなたはまた、非クラスタ化インデックスを上望みますクエリ内のDISTINCT演算子をサポートするLISTName。このサンプルデータを使用して:
-- Sample data
CREATE TABLE #LIST (LISTName varchar(10) NOT NULL);
INSERT #LIST
SELECT TOP (100) LEFT(newid(), 8)
FROM sys.all_columns a, sys.all_columns b;
-- You will probably want LISTName to be indexed
CREATE NONCLUSTERED INDEX nc_LISTName ON #LIST(LISTName);
ソリューションは、次のようになります。また、あなたがこれを行うことができ
DECLARE @LIST_Param varchar(8) = 'No List';
SELECT LISTName
FROM
(
SELECT distinct LISTName, (SELECT COUNT(DISTINCT LISTName) FROM #LIST)
FROM #LIST
UNION ALL
SELECT 'No List'
WHERE (SELECT COUNT(DISTINCT LISTName) FROM #LIST) < 1000000
) Distinct_LISTName
WHERE (@LIST_Param = 'No List' or @LIST_Param = LISTName);
:
DECLARE @LIST_Param varchar(8) = 'No List'; --'CFA647F7';
WITH x AS
(
SELECT LISTName, c = COUNT(*)
FROM #LIST
WHERE (@LIST_Param = 'No List' or @LIST_Param = LISTName)
GROUP BY LISTName
),
c AS (SELECT s = SUM(c) FROM x)
SELECT LISTName
FROM x CROSS JOIN c
WHERE s < 1000000;
こんにちはスティーブンを、「私はあなたの答えを使用してみましたが、私はcouldnドロップダウンリストで「No List」オプションを見つけよう –
@KrishDevクエリを更新し、そのデータセットを使用可能な値に使用するようにパラメータを設定しましたか? – StevenWhite
ええ、私はクエリを更新しました。リストにはリストがありませんでしたが、出力値なしで実行されます。 –