我寫這有三個參數firstname, lastname, fathers name
客戶搜索存儲過程都被varchar
客戶搜索存儲過程
我寫了象下面這樣:
CREATE PROCEDURE [dbo].[SearchCustomer]
(
@p_FirstName varchar = NULL
,@p_LastName varchar = NULL
,@p_FatherFirstName varchar = NULL
)
AS
BEGIN
SET NOCOUNT ON
SELECT [CustomerID]
,[CustomerTitle]
,[FirstName]
,[MiddleName]
,[LastName]
,[FatherFirstName]
,[EmailId]
FROM [Customer]
WHERE [FirstName] LIKE COALESCE(@p_FirstName,'%')
OR [LastName] LIKE COALESCE @p_LastName,'%')
OR [FatherFirstName] LIKE COALESCE(@p_FatherFirstName,'%')
END
我使用的可選參數,因爲如果沒有參數值我需要得到充分的房源,沒有任何標準,但是當我給剛剛名字我只需要那些匹配標準不休息,但現在它列出了所有
行我想這個問題是某處靠近OR
請問您能幫忙嗎?
如果我改變或與
現在,如果我把第一個名稱爲「ABC」和姓氏和父親的名字黑...
我得到的所有房源,包括「ABC」爲名字..
我只需要其中具有名字爲「ABC」行不休息
如果定義了'VARCHAR'參數 - 你應該總是** **指定**長度**爲該字符串!因此,使用'VARCHAR(50)'或任何對你有意義的東西 - 否則,你的輸入可能會被截斷... –
我認爲你應該在AND中更改OR。 – Iridio