小编sar*_*sha的帖子

在存储过程的where子句中使用If

我正在编写一个包含3个参数的存储过程,并且我的where子句根据这些参数之一而改变.是否有可能以这种方式编写SQL查询 -

    CREATE PROCEDURE [dbo].[VendorVettingModal] @column NVarchar (50), @applicanttype NVarchar (10), @donotuse int AS

                declare @column NVarchar (50), @applicanttype NVarchar (10), @donotuse int

    select a.Id, a.Firstname, rs.Status,cs.ClearanceStatus
    from applicant a 
    left join ReviewStatus rs on a.ReviewStatus = rs.Id 
    left join ClearanceStatus cs on a.ClearanceStatus = cs.Id
    where
    if(@column = 'Recruiting')
    begin
        a.applicanttype = @applicanttype and a.reviewstatus = 7 and a.donotuse = @donotuse      
    end
    else if(@column = 'Clearance')
    begin
        a.applicanttype = @applicanttype and (a.reviewstatus != 7 or a.reviewstatus is null) and …
Run Code Online (Sandbox Code Playgroud)

sql stored-procedures

3
推荐指数
1
解决办法
1万
查看次数

使用SQL获取在"IN"中具有两个值的记录

我需要一个SQL语句来从数据库中提取具有附件标记的那些申请人.如果我想要7或8作为附件标签的aaplicant但是我需要具有这两个标签的申请人,则belowq语句可以正常工作.

select distinct(a.id) from applicant a
join applicantdeployment ad on a.id = ad.applicantid
join ApplicantAttachment at on a.id = at.applicantid
where a.applicanttype = 'TCN/LN' and ad.groundlocation in (4,8,14) and ad.deploymentstatus =1
and ad.trainingdeploymentstatus = 6 and at.tag in (7,8)
Run Code Online (Sandbox Code Playgroud)

例如,从下面的集合我只想要显示ids 7332,7451和7449.

ID Tag
7328 8
7328 8
7332 8
7332 7
7337 7
7449 8
7449 7
7451 8
7453 7
7451 7

谢谢!

sql relational-division

0
推荐指数
1
解决办法
3162
查看次数