1

我将一些代码从 sql 重写为 sql_oracle,但我找不到 <>'' 的解决方案。

!= '' 将不起作用。

如果我可以翻译 <>'' 它应该可以工作。我已经用谷歌搜索了很多,但找不到任何 awnsers .. 我在编码方面没有那么丰富的经验,所以也许这里有人可以帮助我。

这是sql代码

    SQL_genericp2.Insert(
            "from   tsdsmd  trip                            "
            "       left outer join                         "
            "       (                                       "
            "       select  tsroma.* from tsroma            "
            "       where   tsroma.tstohn <> ''             "
            "       )       leg                             "
            "       on      trip.dosvlg = leg.tsrido        "
            "       left outer join dosier shipment         "
            "       on      leg.dosvlg = shipment.dosvlg    "
            "       left outer join                         "
            "       (                                       "
            "       select  * from tsdsco                   "
            "       where   laloin = 1 and volgnr = 1       "
            "       )       tsdsco1                         "
            "       on      leg.dosvlg = tsdsco1.dosvlg     "
            "       left outer join                         "
            "       (                                       "
            "       select  * from tsdsco                   "
            "       where   laloin = 2 and volgnr = 1       "
            "       )       tsdsco2                         "
            "       on      leg.dosvlg = tsdsco2.dosvlg     "
            ,1);
    </i>

这是 sql_orcale 代码:

    SQL_Oracle_genericp2.Insert(
            "from                                                       "
            "        \"dkf_tsdsmd\"                                                             trip        "
            "                                                       "
            "        left outer join                                            "
            "        (select  * from \"dkf_tsroma\" where \"tstohn\" != '')                     leg     "
            "        on      trip.\"dosvlg\" = leg.\"tsrido\"                               "
            "                                                       "
            "   left outer join                                             "
            "        \"dkf_tsdsmd\"                                                                 shipment    "
            "        on      leg.\"dosvlg\" = shipment.\"dosvlg\"                               "
            "                                                       "
            "   left outer join                                             "
            "   (                                                   "
            "   select                                                  "
            "       \"fileNumber\"                                  \"dosvlg\", "
            "       max(case when \"addressRole\" = 0 then \"relationSearchname\"   else null end)  \"zoek0\",  "
            "       max(case when \"addressRole\" = 0 then \"nameLine1\"        else null end)  \"tsnam10\",    "
            "       max(case when \"addressRole\" = 0 then \"streetLine1\"      else null end)  \"tsadr10\",    "
            "       max(case when \"addressRole\" = 0 then \"countryCode\"      else null end)  \"land0\",  "
            "       max(case when \"addressRole\" = 0 then \"placeName\"        else null end)  \"tscity0\",    "
            "       max(case when \"addressRole\" = 0 then \"postcode\"     else null end)  \"postun0\",    "
            "                                                       "
            "       max(case when \"addressRole\" = 1 then \"relationSearchname\"   else null end)  \"zoek1\",  "
            "       max(case when \"addressRole\" = 1 then \"nameLine1\"        else null end)  \"tsnam11\",    "
            "       max(case when \"addressRole\" = 1 then \"streetLine1\"      else null end)  \"tsadr11\",    "
            "       max(case when \"addressRole\" = 1 then \"countryCode\"      else null end)  \"land1\",  "
            "       max(case when \"addressRole\" = 1 then \"placeName\"        else null end)  \"tscity1\",    "
            "       max(case when \"addressRole\" = 1 then \"postcode\"     else null end)  \"postun1\",    "
            "                                                       "
            "       max(case when \"addressRole\" = 3 then \"relationSearchname\"   else null end)  \"zoek3\",  "
            "       max(case when \"addressRole\" = 3 then \"nameLine1\"        else null end)  \"tsnam13\",    "
            "       max(case when \"addressRole\" = 3 then \"streetLine1\"      else null end)  \"tsadr13\",    "
            "       max(case when \"addressRole\" = 3 then \"countryCode\"      else null end)  \"land3\",  "
            "       max(case when \"addressRole\" = 3 then \"placeName\"        else null end)  \"tscity3\",    "
            "       max(case when \"addressRole\" = 3 then \"postcode\"     else null end)  \"postun3\",    "
            "                                                       "
            "       max(case when \"addressRole\" = 4 then \"relationSearchname\"   else null end)  \"zoek4\",  "
            "       max(case when \"addressRole\" = 4 then \"nameLine1\"        else null end)  \"tsnam14\",    "
            "       max(case when \"addressRole\" = 4 then \"streetLine1\"      else null end)  \"tsadr14\",    "
            "       max(case when \"addressRole\" = 4 then \"countryCode\"      else null end)  \"land4\",  "
            "       max(case when \"addressRole\" = 4 then \"placeName\"        else null end)  \"tscity4\",    "
            "       max(case when \"addressRole\" = 4 then \"postcode\"     else null end)  \"postun4\" "
            "   from                                                    "
            "       \"dkf_v_cw_fileAddress\"                                    "
            "   group by                                                "
            "       \"fileNumber\"                                          "
            "   )                                           tsdnaw      "
            "   on  leg.\"dosvlg\" = tsdnaw.\"dosvlg\"                              "
            "                                                       "
            "   left outer join                                             "
            "   (                                                   "
            "   select                                                  "
            "       \"dkf_tsdsco\".\"dosvlg\"                           \"dosvlg\", "
            "       max(case when \"laloin\" = 1 and \"volgnr\" = 1 then \"tsfrti\" else null end)  \"tsfrti1\",    "
            "       max(case when \"laloin\" = 1 and \"volgnr\" = 1 then \"tsttim\" else null end)  \"tsttim1\",    "
            "       max(case when \"laloin\" = 2 and \"volgnr\" = 1 then \"tsfrti\" else null end)  \"tsfrti2\",    "
            "       max(case when \"laloin\" = 2 and \"volgnr\" = 1 then \"tsttim\" else null end)  \"tsttim2\" "
            "   from                                                    "
            "       \"dkf_tsdsco\"                                          "
            "   group by                                                "
            "       \"dosvlg\"                                          "
            "   )                                           tsdsco      "
            "       on  leg.\"dosvlg\" = tsdsco.\"dosvlg\"                              "
            ,1);

4

1 回答 1

2
tsroma.tstohn <> '' 

Oracle 将空字符串视为 NULL。所以在这种情况下,你必须把它写成

tsroma.tstohn IS NOT NULL

您还需要考虑空字符串变为 NULL 是否对您的数据模型来说是一个问题。

于 2012-10-23T08:32:29.500 回答