Nat*_*Pet 3 sql t-sql sql-server sql-server-2008
我正在尝试在案例中的案例中在tsql中执行选择语句。首先基于SearchField是什么。接下来,我需要根据SearchOper进行操作。
declare @searchField varchar(50)
declare @searchString varchar(50)
declare @searchOper varchar(50)
case @searchField
when 'CompanyName' then
case @searchOper
when 'eq' then
select * from tbl1 where CompanyName = @searchString
when 'ne' then
select * from tbl1 where CompanyName <> @searchString
end
when 'StoreNum' then
case @searchOper
when 'eq' then
select * from tbl1 where StoreNum = @searchString
when 'ne' then
select * from tbl1 where StoreNum <> @searchString
end
end
Run Code Online (Sandbox Code Playgroud)
注意,我要执行的操作是在case语句中进行选择。
我收到一条消息,提示关键字“ case”附近的语法不正确。
小智 5
根据您的示例,您可能想要使用IF语句(这是ELSE的示例,但是您也可以多次使用IF和ELSE IF):
declare @searchField varchar(50)
declare @searchString varchar(50)
declare @searchOper varchar(50)
IF @searchField='CompanyName'
BEGIN
IF @searchOper='eq'
BEGIN
select * from tbl1 where CompanyName = @searchString
END
ELSE
BEGIN
select * from tbl1 where CompanyName <> @searchString
END
END
ELSE
BEGIN
IF @searchOper='eq'
BEGIN
select * from tbl1 where StoreNum = @searchString
END
ELSE
select * from tbl1 where StoreNum <> @searchString
END
END
Run Code Online (Sandbox Code Playgroud)
CASE非常相似,但是与内联语句一起使用(即SELECT CASE 1 = 1 THEN'a'ELSE'b'END)。