دستور دومی که نوشتید به نظر مشکلی نداره
SELECT * FROM DocumentTB
WHERE
DocumentTB.customerId =
CASE DocumentTB.customerType
WHEN 0 THEN COALESCE(@commonId, DocumentTB.customerId)
WHEN 1 THEN COALESCE(@commonId, DocumentTB.customerId)
WHEN 3 THEN COALESCE(@deskId, DocumentTB.customerId)
ELSE DocumentTB.customerId
END
داده های جدولتون رو چک کنید شاید مشکل ازاون باشه.
در ضمن نوع داده 2 پارامتر و customerId باید یکی باشه ، ممکنه نوع داده پارامترها رشته ای باشه و شما مقدار "" رو براش بفرستید که این باعث میشه مقدار صفر برگردونه و دستور شما خطای منطقی بده.