SELECT COUNT(*) FROM TableName;
SELECT COUNT(ColumnName) FROM TableName;
SELECT COUNT(*) FROM TableName WHERE Column = 'Value';
應用程式中常需根據使用者輸入動態組裝查詢:
DECLARE @sql NVARCHAR(MAX) = 'SELECT COUNT(*) FROM Article a WHERE 1=1 ';
IF @Title IS NOT NULL AND @Title <> ''
SET @sql = @sql + 'AND a.Title LIKE ''%'' + @Title + ''%'' ';
-- 使用 sp_executesql 參數化執行,防止注入
EXEC sp_executesql @sql, N'@Title NVARCHAR(100)', @Title = @Title;
WHERE 1=1:永真條件,便於後續 AND 串接,無需判斷首條件a. 前綴:資料表別名,提升可讀性與避免欄位衝突sp_executesql 而非字串拼接,防 SQL 注入COUNT(*) vs COUNT(1):現代版本無差異,優化器同等處理COUNT(DISTINCT Column) 在大表無索引欄位上使用COUNT(*) 配合 WHERE 1=1 動態組裝是條件統計的標準模式,搭配參數化執行兼顧安全與效能。