sql-server - SQL;按合并列搜索

标签 sql-server t-sql stored-procedures where-clause

我正在创建一个存储过程。我有两列,名字和姓氏。

我可以使用以下语句合并它们:

REPLACE(dbo.Employee.Forename, ' ', '') + ' ' + 
     REPLACE(dbo.Employee.Surname, ' ', '') AS EmployeeFullName

如果我想按 EmployeeFullName 进行搜索,我该怎么做?

WHERE EmployeeFullName = @Name

其中@name 是存储过程的参数输入。

CREATE PROCEDURE EmployeeSearch
    @Name VARCHAR(50)
AS
    SELECT 
        dbo.Employee.Number, 
        REPLACE(dbo.Employee.Forename, ' ', '') + ' ' + REPLACE(dbo.Employee.Surname, ' ', '') AS EmployeeFullName, 
        DateOfBirth
    FROM 
        dbo.Employee
    WHERE        
        EmployeeFullName = @Name

    RETURN
GO

最佳答案

您可以创建如下存储过程:

CREATE procedure EmployeeSearch 
@name varchar(50)
as
begin

    SELECT Number, EmployeeFullName from (
        SELECT dbo.Employee.Number, REPLACE(dbo.Employee.Forename, ' ', '') + ' ' + REPLACE(dbo.Employee.Surname, ' ', '') AS EmployeeFullName
        FROM yourtable
    ) AS T WHERE EmployeeFullName = @Name

end

关于sql-server - SQL;按合并列搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48933663/

相关文章:

sql-server - 为什么 SQL Server 意外停止发出范围锁

sql-server - SSRS 中的表达式未按预期工作

sql - 在sql中使用左外连接过滤记录

sql-server - TSQL 将 newid 转换为十进制(38,0)

sql-server - 如何使用 SQL Server 存储过程(计划每周运行)的结果来分析一段时间内的数据趋势?

java - SQL服务器异常: when using jdbc connection to retrieve data

sql-server - 如何像在 T-SQL 中一样在 PL/SQL 中声明和使用变量?

sql-server - 从 SQL View 执行 SQL 存储过程

c# - SM?使用 if exists drop then create 和 no sp_executesql 编写所有 SQL 存储过程的脚本

php - 通过 PHP 调用的 MySQL 存储过程无法正常执行