SQL Server - 识别成功的where子句

Pra*_*win 1 sql sql-server

我需要有关T-SQL的帮助.我的SQL Server中有一个存储过程,带有查询(示例),如下所示:

select mpid, empname, sal, phone, [e-mail]
from emp
where empid = @empid or empname = @empname or sal = @sal or phone = @phone
Run Code Online (Sandbox Code Playgroud)

在上面的示例查询中,我的where子句中有四个条件.当我运行查询时,如果任何条件与输入变量匹配,我会得到结果(例如:@ empid,@ empname等).

我现在的要求是确定哪些条件与输入数据匹配.我只需要知道第一个与输入值匹配的条件.

Siy*_*ual 5

您可以使用以下CASE语句中的声明执行此操作SELECT:

Select  empid, 
        empname, 
        sal,
        phone,
        [e-mail],
        Case 
            When empid = @empid     Then 'EmpId'
            When empname = @empname Then 'EmpName'
            When sal = @sal         Then 'Sal'
            When phone = @phone     Then 'Phone'
        End As MatchingColumn
From    emp
Where   empid = @empid 
    Or      empname = @empname  
    Or      sal = @sal 
    Or      phone = @phone
Run Code Online (Sandbox Code Playgroud)