我必须执行一个查询,条件应该依赖于变量值.

例如, 如果变量为@EventId = 0 那么条件应该是:

select * from tbl_event where event_id != @EventId

如果变量@EventId = 10 那么条件应该是:

select * from tbl_event where event_id = @EventId

我必须在MSSQL数据库存储过程中执行此操作. 有谁能帮帮我吗?

推荐答案

条件1:Match@EventID=0且Event_id!=@EventID

条件2:Match@EventID=10,Event_id=@EventID

要满足这两个条件中的任何一个,您需要OR运算符.

SELECT * 
FROM tbl_event 
WHERE (@EventId = 0 AND event_id != @EventId)
  OR (@EventId = 10 AND event_id = @EventId)

Sql相关问答推荐

将主表与历史表连接以获取主表的当前汇率以及历史表中的上一个和最后一个汇率

如何在不更改S代码的情况下,判断存储过程调用了多少次clr函数?

PostgreSQL:使用JSONB中的字段使用jsonb_to_Records()填充记录

从列中提取子字符串的ORDER BY CASE语句

如何用客户名称计算sum(dr)和sum(cr)

Redshift PL/pgSQL循环中的参数化列名

将FLOAT转换为VARBINARY,然后再转换回FLOAT

Proc SQL Select Distinct SAS

不同计数的 Postgres PIVOT 表

DB2 SQL查询结果多余数据

如何在 SQL Server 中解决这个复杂的窗口查询?

根据要过滤的列的值进行联接和分组

SQL Server - 判断 ids 层次 struct 中的整数 (id)

将varchar (7)列转换为datetime

删除重复记录但保留最新的SQL查询

获取记录的上一个值,并将其与当前值一起显示

查询中获取审批者不起作用

如何使用 pg-promise 创建要在复杂的 sql 查询中使用的 VALUES 列表?

SQL:获取连接表的第一个项目

SQL查询,用于从与N ids Timescaledb对应的表中查找时间戳的最新或最大值