আমি জানি এটি সত্যিই পুরানো, তবে আমি এই NULLIF
জাতীয় দৃশ্যের কৌশলটি পছন্দ করি এবং এখনও অবধি কোনও উত্সাহ পাইনি। শুধু আমার অনুলিপি এবং পেস্টযোগ্য উদাহরণ দেখুন, যা যদিও খুব ব্যবহারিক নয় তবে এটি কীভাবে ব্যবহার করতে হয় তা প্রদর্শন করে।
NULLIF
পারফরম্যান্সে আপনাকে একটি ছোট নেতিবাচক প্রভাব দিতে পারে, তবে আমার ধারণা এটি এখনও সাবকোয়ারির চেয়ে দ্রুত হওয়া উচিত।
DECLARE @tbl TABLE ( id [int] NOT NULL, field [varchar](50) NOT NULL)
INSERT INTO @tbl (id, field)
SELECT 1, 'Manager'
UNION SELECT 2, 'Manager'
UNION SELECT 3, 'Customer'
UNION SELECT 4, 'Boss'
UNION SELECT 5, 'Intern'
UNION SELECT 6, 'Customer'
UNION SELECT 7, 'Customer'
UNION SELECT 8, 'Wife'
UNION SELECT 9, 'Son'
SELECT * FROM @tbl
SELECT
COUNT(1) AS [total]
,COUNT(1) - COUNT(NULLIF([field], 'Manager')) AS [Managers]
,COUNT(NULLIF([field], 'Manager')) AS [NotManagers]
,(COUNT(1) - COUNT(NULLIF([field], 'Wife'))) + (COUNT(1) - COUNT(NULLIF([field], 'Son'))) AS [Family]
FROM @tbl
মন্তব্য প্রশংসা :-)