2
考虑下面的查询,这将给学生姓史密斯的数的计数对于给定的报名(主题)TSQL计数
SELECT
e.EnrolmentId,
COUNT((CASE WHEN s.Surname LIKE 'Smith' THEN 1 ELSE NULL END)) AS CountIf
FROM
Enrolment e
INNER JOIN StudentEnrolment se
ON e.EnrolmentId = se.EnrolmentId
INNER JOIN Student s
ON se.StudentId = s.StudentId
GROUP BY
e.EnrolmentId
是否有可能有“史密斯”作为参数,如果更改为COUNT和SUM为0,而不是空else部分,它应该工作是这样的
COUNT((CASE WHEN s.Surname LIKE @Surname THEN 1 ELSE NULL END)) AS CountIf
貌似选择子句将工作在参数。只需要测试什么时候从.NET代码中调用。 – Craig 2012-07-18 03:51:38
@Craig它也能工作。应该没有任何区别。 – Icarus 2012-07-18 03:53:49
谢谢,我真的不认为参数选择将工作。 – Craig 2012-07-18 03:54:47