我需要为SQL Server2008编写一个执行大型select查询的存储过程,我需要它通过过程的参数指定过滤类型来过滤结果。我找到了一些这样的解决方案:
create table Foo(
id bigint, code char, name nvarchar(max))
go
insert into Foo values
(1,'a','aaa'),
(2,'b','bbb'),
(3,'c','ccc')
go
create procedure Bar
@Filt
我有与下面三个类似的表格。我需要根据id连接前两个表,然后根据第二个名字连接第三个表。但是,最后一个表需要一个过滤器,其中城市应该等于伦敦,除非年龄为空,在这种情况下,城市应该等于曼彻斯特。
我使用CASE语句尝试了下面的代码,但它不起作用。我是SQL新手,因此我不确定如何将where语句与if子句组合在一起,在if子句中,选择的过滤器会根据不同列中是否存在数据而发生变化。我正在使用Toad for Oracle的DBMS。
FIRST.NAME.TABLE
ID FIRST_NAME ENTRY_DATE
1 JOHN 09/09/2019
2 NICOLA