Sql-Server

SQL server Like 模式匹配與 CONCAT() 總是失敗

  • October 27, 2016

我在 SQL Server 的簡單查詢腳本中遇到問題。請幫忙

腳本是

CREATE PROCEDURE [dbo].[Search_By_Author_And_Name] 
(
   @Author_name AS [varchar](50)
)
AS
BEGIN
   Select B.*, R.R_number From Book AS B , Rack As R
   where B.Author LIKE CONCAT('%', @Author_name, '%')
   AND B.B_Id=R.B_Id
END 
GO

問題是這不返回任何列。即使我將有效參數(@Author_name)傳遞給過程,它也不會返回任何內容。LIKE的使用中的where子句肯定有問題。

表中的樣本數據為

在此處輸入圖像描述

第一個表是 Book 表,另一個表是 Rack 表

我通過呼叫程序

EXEC Search_By_Author_And_Name 'Physics'

請幫忙

提前致謝

您只匹配作者,而不是 B_Name。將程式碼更改為:

CREATE PROCEDURE [dbo].[Search_By_Author_And_Name] 
(
   @Author_name AS [varchar](50)
)
AS
BEGIN
   Select B.*, R.R_number From Book AS B , Rack As R
   where (B.Author LIKE CONCAT('%', @Author_name, '%') OR
   B.B_Name LIKE CONCAT('%', @Author_name, '%'))
   AND B.B_Id=R.B_Id
END 
GO

引用自:https://dba.stackexchange.com/questions/153512