1

我需要根据要在运行时传递的 Businessunit 值执行查询。如果businessunit 为null,则不应执行AND 条件,如果它不为null,我必须采用通过的businessunit。

// SQL 查询

SELECT nvrEmpCode, nvrEmpName 
FROM tblHRIMS_EmployeeDetail
WHERE (intCategoryID NOT IN (0, 1)) AND (nvrResigned = 'No') 
AND nvrBusinessunit=

所有这些都必须在 SQLDatasource 中完成,而不是作为 StoredProcedure。如何做到这一点?

4

3 回答 3

1

你的WHERE情况应该是这样的:

WHERE (intCategoryID NOT IN (0, 1)) AND (nvrResigned = 'No') 
AND (@businessunit IS NULL OR nvrBusinessunit=@businessunit)
于 2012-09-18T07:16:09.623 回答
1

假设您使用的是 SQL 客户端:

SELECT nvrEmpCode, nvrEmpName 
FROM tblHRIMS_EmployeeDetail
WHERE (intCategoryID NOT IN (0, 1)) AND (nvrResigned = 'No') 
AND (nvrBusinessunit=@BU OR @BU is null)

然后你必须为参数传递一个值:

command.Parameters.AddWithValue(@BU, yourValue)
于 2012-09-18T07:16:31.090 回答
0
SELECT        nvrEmpCode, nvrEmpName, @Businessunit AS varchar

FROM            tblHRIMS_EmployeeDetail
WHERE        (intCategoryID NOT IN (0, 1)) AND (nvrResigned = 'No') 
AND (nvrBusinessUnit = (CASE WHEN @Businessunit = '' THEN nvrBusinessunit ELSE @Businessunit END))
于 2012-09-18T07:34:50.563 回答