원래 C#에서 검색 문자열을 작성하고이를 사용하여 DB를 검색했지만 저장 프로 시저를 사용하도록 전환하기 시작했습니다. 내가 뭘 하려는지 @DeletedDeviceSearch 변수가 false 일 때 검색 문자열에 'LogicallYDeleted = 0'을 추가합니다. 그렇지 않으면 논리적으로 삭제 된 장치와 현재 장치를 모두 검색합니다.CASE 문에서 SQL WHERE 절
WHERE
절에 문제가 있습니다. 거기하는 where
절에서
USE Inventory;
GO
CREATE PROCEDURE [dbo.InventorySearch]
@FieldName nvarchar(50),
@SearchTerm nvarchar(50)
@DeletedDeviceSearch bit
AS
SET NOCOUNT ON;
SELECT LK_User, LK_Location, DeviceName, AssetTypeId, DeviceID, SerialNumber, LogicallyDeleted
FROM Device
WHERE
(CASE(@DeviceSearch)
WHEN 1 THEN
LogicallyDeleted = 0 and @FieldName = @SearchTerm
ELSE @FieldName = @SearchTerm)
GO
은 정말 신속한 답변을 주셔서 감사합니다. 코드가 작동하는 방법에 대한 설명은 매우 유용합니다 ... – michaelk46