2013-08-22 65 views
1

我有它正在工作的程序,但我想改進它,通過提供能夠通過單詞中的幾個字母搜索。步驟:選擇提供的字母應該找到單詞的程序

alter PROCEDURE SearchByIncIDroNameOfClientoStreetorEmpID 
@IncID int, 
@NameOfClient nvarchar (60), 
@StrID int, 
@EmpID int, 
@date date 
as 
select IncID,NameOfClient,EnterDate,StrName ,AppartmentNumber as 'appartment',Summary,IncStatus,e.LastName,EndDate 
from Incident i 
JOIN Streets s on i.StrID=s.StrID 
join Employee e on i.EmpID=e.EmpID 
where IncID [email protected] or NameOfClient = @NameOfClient or s.StrID = @StrID or [email protected] or EnterDate [email protected] 
go 

我需要修改這部分NameOfClient = @NameOfClient所以它會顯示與提供字母開頭的記錄。所以現在,如果我想搜索John我必須賴特約翰,但我想例如,如果我只會給Jo它應該返回所有的記錄開始從Jo 我試圖在@NameOfClient之前添加%符號,但它不起作用。任何想法我能做到嗎?

回答

3

您需要使用like操作:

NameOfClient like @NameOfClient+'%' 
+0

您是否知道如何對int和日期字段執行相同操作? – Andrey

+0

我嘗試使用'IncID like @ IncID'類似,但它不工作:) – Andrey

+0

我想讓他們能夠按事故的第一個數字搜索,例如顯示所有事件,從5買開始提供只有5和它例如:將顯示500,501,503,... – Andrey

2
NameOfClient like @NameOfClient + '%' 

這不工作?

+0

它的實際工作。感謝名單! – Andrey

+0

是否可以做同樣的int字段? – Andrey

+0

你爲什麼需要這樣。整數列不適用於部分匹配。你可以嘗試,但我認爲它會奏效。 – Ankit

0

必須使用LIKE操作:

WHERE NameOfClient LIKE @NameOfClient 
+0

我正在嘗試它並且它不起作用 – Andrey

相關問題