我不赞成将项目从linq编码改回sql存储过程。 (我的公司拒绝升级我们的sql 2000数据库。)我在尝试将其转换为sql的当前代码上遇到了麻烦。有人能帮忙吗?
Dim ICD9Codes = (
From a In Linq2Db.ICD9Codes
Where IIf(String.IsNullOrEmpty(Variable1), 1 = 1, a.Code.StartsWith(Variable1))
Select a).ToList
我被困在'IIF'语句中,如果值不为null,则'where'子句仅在if语句中进行转换。
最佳答案
要将其转换为SP,您需要使Variable1
为参数。可以在IIf
子句中解决WHERE
部分,如下所示:
CREATE PROCEDURE [procedure_name] @variable1 varchar(50)
AS
BEGIN
SELECT *
FROM ID9Codes
WHERE LEN(LTRIM(RTRIM(ISNULL(@variable1, '')))) = 0
OR Code lIKE @Variable1 + '%'
END