我是SQL Server的新手,我想编写一个存储过程。
我有三个参数PAN_No
,PolicyNo
和ClientID
来搜索来自2个不同表格的详细信息,其中包含一个公共列ClientID
。
Client_details
表包含列ClientID
,PAN_NO
,Contract_Details
表包含ClientID
,PolicyNo
,DOB
列。
如果我要使用PAN_NO
或PolicyNo
进行搜索,我想显示所有详细信息。
答案 0 :(得分:0)
不确定你的意思,但
CREATE PROCEDURE usp_PocedureName --give proper procedure name
@PAN_No int, -- not sure what the exact data types
@PolicyNo int,
@ClientID int
AS
SELECT
Column1, Column2, Column3 -- Select whatever the columns you need
FROM
Client_ details Client
INNER JOIN
Contract_Details Contract ON Contract.ClientID = Client.ClientID
WHERE
Client.ClientID = @ClientID
AND (PAN_No=@PAN_No OR PolicyNo =@PolicyNo)
<强>更新强>
作为一种逻辑,您可以在不使用参数进行搜索时传递默认值
在这种情况下我们可以使用0
所以
SELECT
Column1, Column2, Column3 -- Select whatever the columns you need
FROM
Client_ details Client
INNER JOIN
Contract_Details Contract ON Contract.ClientID = Client.ClientID
WHERE
Client.ClientID = @ClientID
AND (@PAN_No > 0 AND PAN_No = @PAN_No) OR
(@PolicyNo > 0 AND PolicyNo = @PolicyNo)
因此,只有值为>0
且@PolicyNo