SELECT TOP (@num) * FROM (SELECT*, Row_number() OVER ( ORDERBY 户名) ASrow FROM tb_red_dw) a WHERErow>=@bgn AND ( [证件号码] LIKE'%'+@id_no +'%' AND [户名] LIKE'%'+@acc_name +'%' AND [法人代表] LIKE'%'+@fr_name +'%' AND [法人代表证件号] LIKE'%'+@fr_id +'%' AND [涉案批次] LIKE'%'+@sapc+'%' )
参数参与条件的写法
方法一、一般可用 case 条件语句,但因 case 后的 then 只能为常量,不能是表达式,有时无法写出
方法二、将参数条件与符合参数条件描述的其他条件写在一起,更通用些
如参数 @state,1 正常状态(撤销日期字段为空),9 全部(撤销日期字段可为空也可不为空)
select * from tb_rhzh_gr where (@state=’1’ and 撤销日期 is null or @state=’9’)
短期内拥有账户的个数(outer apply)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
SELECT a.*, --a.身份序号, --法定代表人或负责人身份证件编号, --a.账号, --a.开户日期, ff.短期账户数量 --INTO #tmp_all FROM #tmp A OUTER APPLY (SELECTCount(*) 短期账户数量,count(distinct 电话) 电话数量 FROM #tmp B WHERE a.身份序号 = b.身份序号 ANDAbs(Datediff(day, CONVERT(DATE, a.开户日期), CONVERT(DATE, 开户日期))) <=@days) AS FF ORDERBY 身份序号, 开户日期