我想过滤SELECT语句。我想要的行为是,如果参数@ProductID =%,那么我想在WHERE子句执行以下操作:WHERE语句基于变量值
WHERE (DTH.TaskId IS NULL OR PDT.PK_Product LIKE @productId)
如果@ProductID不=%我想以下WHERE子句:
WHERE (PDT.PK_Product = @productId)
我无法实现此目的。
我已经尝试过病例陈述,但无法让它理解。我也尝试过:
WHERE IF @productId = '%' (
DTH.TaskId IS NULL
OR PDT.PK_Product LIKE @productId
) ELSE (
PDT.PK_Product = @productId
)
这是造成语法错误。我如何获得理想的结果?
LIKE opertator需要在左边的字符数据类型。你的'PDT.PK_Product'不是一个字符数据类型。你想用'PDT.PK_Product LIKE @ productId'达到什么目的?那就是,你期待什么结果? –
用言语告诉我们你想要做什么... –