use*_*176 2 sql sql-server sql-server-2008
我有一个过程,需要绕过输入为null的WHERE子句.
请找到以下条件.
CREATE PROCEDURE [dbo].[spPERSON_SELECT]
(
@PersonID INT = NULL,
@OrganizationID INT = NULL,
@ManagerID INT = NULL
)
AS
BEGIN
SELECT PERSON.name, ORGANIZATION.name,PERSON.manager
FROM PERSON
INNER JOIN ORGANIZATION
ON PERSON.person_id = ORGANIZATION.person_id
WHERE PERSON.person_id = @PersonID
and ORGANIZATION.organization_id = @OrganizationID
and PERSON.manager_id = @ManagerID
END
GO
Run Code Online (Sandbox Code Playgroud)
Iam面临一个问题,而输入为null,在这种情况下需要避免where条件.
例:
如果@PersonID为null,那么我的select查询需要以下结构:
SELECT PERSON.name, ORGANIZATION.name,PERSON.manager
FROM PERSON
INNER JOIN ORGANIZATION
ON PERSON.person_id = ORGANIZATION.person_id
WHERE ORGANIZATION.organization_id = @OrganizationID
and PERSON.manager_id = @ManagerID
Run Code Online (Sandbox Code Playgroud)
我想避免动态查询.
括起每个参数并测试null即
(PERSON.manager_id=@ManagerID or @ManagerID is NUll)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1347 次 |
| 最近记录: |