Sql server 2008 r2 用于检查现有记录并获取记录的Sql案例语句

Sql server 2008 r2 用于检查现有记录并获取记录的Sql案例语句,sql-server-2008-r2,case,Sql Server 2008 R2,Case,我有两个参数X和Y 这些规则中只有一个可以为空。它们都可以存在,但它们都不能为空 我用它来检查它们是否存在于数据库中,这样我就可以分配一个,其余的SP就可以继续插入 SELECT @Id=id FROM Table WHERE (No = @x) OR (No = @y) 我想补充的是,如果它们都存在,我希望Id是@x的Id 我脑子里想不清这个案子的陈述。通常这是一个不需要动脑筋的问题,但不知何故我还是被卡住了。ISNULL()将获取它找到的第一个非null值 SELECT @Id=id FR

我有两个参数X和Y

这些规则中只有一个可以为空。它们都可以存在,但它们都不能为空

我用它来检查它们是否存在于数据库中,这样我就可以分配一个,其余的SP就可以继续插入

SELECT @Id=id FROM Table WHERE (No = @x) OR (No = @y)
我想补充的是,如果它们都存在,我希望Id是@x的Id

我脑子里想不清这个案子的陈述。通常这是一个不需要动脑筋的问题,但不知何故我还是被卡住了。

ISNULL()将获取它找到的第一个非null值

SELECT @Id=id FROM Table WHERE No = ISNULL(@x, @y)