C# 到Linq的Oracle SQL语句不工作

C# 到Linq的Oracle SQL语句不工作,c#,linq,oracle,C#,Linq,Oracle,我有一个需要在SQL中转换的查询。一直在寻找这样做了一段时间,但没有成功 这是ORACLE查询 SELECT DRKY AS REASON_CODE, DRDL01 AS DESCRIPTION FROM shema.SourceTable WHERE drsy = '00' AND DRDL01 IS NOT NULL AND (drrt = 'W4' OR drrt = 'W5') and NVL ( trim(DRKY), '000') = '801'; 这是我

我有一个需要在SQL中转换的查询。一直在寻找这样做了一段时间,但没有成功 这是ORACLE查询

SELECT 
     DRKY AS REASON_CODE,
     DRDL01 AS DESCRIPTION
 FROM shema.SourceTable
WHERE drsy = '00'  AND DRDL01 IS NOT NULL AND (drrt = 'W4' OR drrt = 'W5') and NVL ( trim(DRKY), '000') = '801';
这是我的Linq查询,它不返回值

            var RJDEReasonCode = from a in JTable.SourceTable
                             where
                               a.DRSY.Equals( "00") &&
                               a.DRDL01 != null &&
                               (a.DRRT.Equals( "W4") ||
                               a.DRRT.Equals( "W5")) &&
                               a.DRKY.Equals( "801") // here is where the problem is  tried many things  but nothing has worked so far.
                             select new
                             {
                                 CATEGORY_CODE = a.DRRT,
                                 REASON_CODE = a.DRKY,
                                 DESCRIPTION = a.DRDL01
                             };

看起来您只需要修剪一下DRKY:

a.DRKY.Trim() == "801"
或者可能:

a.DRKY != null && a.DRKY.Trim() == "801"

(就我个人而言,我发现字符串比较的
==
比使用
Equals
更简单,但是YMMV。)

看起来您只需要修剪
DRKY

a.DRKY.Trim() == "801"
或者可能:

a.DRKY != null && a.DRKY.Trim() == "801"

(我个人认为字符串比较的
==
比使用
Equals
更简单,但是YMMV。)

+1我也喜欢使用==而不是Equals:p,而且我认为这是问题的原因。我有另一个查询返回一组代码,我想将它们插入801,我该怎么做?这是我的第一个查询,它返回一个结果,该结果已在DbEntity.MobileAssetDowntimeReasonCodes中从a绑定到gridview var RCode=,其中a.MobileAssetCategoryId.Equals(reasonCode)选择新的{a.JdeReasonCode};ReasonCode.DataSource=RCode.ToList();ReasonCode.DataBind();需要使用RCode值而不是801@user2315840当前位置不太清楚你的意思,但我建议你问一个新的(适当详细的)问题。你可能想用连接来代替…@john我问了另一个问题你能看看我做错了什么吗+1我也喜欢用==而不是Equals:P,而且我认为这是问题的原因我有另一个查询返回一组代码,我想把它们插入801,我怎么做?这是我的第一个查询,它返回一个结果,该结果已在DbEntity.MobileAssetDowntimeReasonCodes中从a绑定到gridview var RCode=,其中a.MobileAssetCategoryId.Equals(reasonCode)选择新的{a.JdeReasonCode};ReasonCode.DataSource=RCode.ToList();ReasonCode.DataBind();需要使用RCode值而不是801@user2315840当前位置不太清楚你的意思,但我建议你问一个新的(适当详细的)问题。你可能想用连接来代替…@约翰,我问了另一个问题,你能看看它,看看我做错了什么吗