坚持使用 CASE 语句与 LIKE 运算符。在下面的存储过程中,所有参数都不是必需的,因此当User没有输入PatientName进行搜索时,下面的查询不会返回预期结果,因为LIKE运算符在外面是显而易见的。我正在寻找这样的东西,以便当用户不输入PatientName时,它将是
-$-100k
==========改变它像这样。这是完美的===========
function () {
var isNegative = this.value < 0 ? '-' : '';
var absValue = Math.abs(this.value);
return isNegative + '$' + this.axis.defaultLabelFormatter.call({
axis: this.axis,
value: absValue
});
}
答案 0 :(得分:0)
T-SQL有两种形式的CASE。您正在使用“简单案例”。尝试“搜索案例” - 例如:
CASE
WHEN @PatientName = '' THEN [ return something ]
WHEN @PatientName like [ pattern ] THEN [ return something ]
ELSE [ return something else ]
END
答案 1 :(得分:0)
请勿在{{1}}中使用CASE WHEN
。使用where clause
OR
而不是
(
@PatientName = '' OR
(c.LastName + c.Firstname) LIKE '%' + @PatientName + '%'
) AND
(
@User = '' OR
a.[User] LIKE '%' + @User + '%'
) -- Same for others