在下面的过程中,我可能只传递@Type
值,否则它将为NULL。
如何在传递NULL时处理所有数据,并在传递类型时处理特定记录。我不想为这个简单的处理构建动态查询。
CREATE PROCEDURE [dbo].[GetPatientImages]
(
@TenantId BIGINT,
@PatientId BIGINT,
@Type NVARCHAR(100)
)
AS
BEGIN
SET NOCOUNT ON
IF @TenantId IS NULL
RAISERROR('The value for @TenantID should not be null', 15, 1) -- with log
ELSE
BEGIN
SELECT
P.[DisplayFileName],
P.[StoredFileName],
P.[Location],
P.[Type],
P.[Description]
FROM
PatientImage P
WHERE P.PatientId=@PatientId AND P.TenantId=@TenantId AND P.[Type]=@Type
ORDER BY P.[Type] DESC
END
END
答案 0 :(得分:3)
试试这个:
WHERE P.PatientId=@PatientId AND P.TenantId=@TenantId AND
(@Type is null or P.[Type]=@Type)