【问题标题】:Linq SELECT AS and CONCATLinq SELECT AS 和 CONCAT
【发布时间】:2016-02-15 10:33:38
【问题描述】:

我得到了一个 SQL 查询,我需要将其转换为 LINQ,这不是问题,但在这个特定查询中有几个项目需要帮助,这些是选择列名称为 '' 以及连接。这是有问题的查询:

SELECT vessel_idx, 
       vessel_name, 
       spotlist_dp, 
       spotlist_bhp,
       spotlist_deck, 
       spotlist_bp, 
       spotlist_oilrec, 
       spotlist_fifi, 
       spotlist_rov,
       '' AS fixture_charterer,
       '' AS fixture_work,
CONCAT( fixture_charterer ,
        ' ', 
        mid(fixture_start,9,2),
        '/',
        mid(fixture_start,6,2)) AS next_charterer_info, 
        '' AS fixture_location,
        '0000-00-00 00:00:00' AS  fixture_stop, 
        '' AS fixture_note 
FROM tbl_vessels

WHERE vessel_type='AHTS'

AND current_location_spotlist_id = 2
AND fixture_start > '2016-02-12 08:30:00'
AND vessel_status = 'PPT'

ORDER BY fixture_stop

常见的东西,如 AND、WHERE 等我可以处理的纯粹是我正在努力解决的这些部分。选择列为'':

SELECT '' AS fixture_charterer,
       '' AS fixture_work,

和连接

CONCAT( fixture_charterer ,
        ' ', 
        mid(fixture_start,9,2),
        '/',
        mid(fixture_start,6,2)) AS next_charterer_info, 
        '' AS fixture_location,
        '0000-00-00 00:00:00' AS  fixture_stop, 
        '' AS fixture_note

非常感谢

【问题讨论】:

  • 你为什么要为此苦苦挣扎?你的尝试是什么?

标签: c# sql-server linq select concat


【解决方案1】:

SELECT AS 表示为:

var demo = from vessel in db.tbl_vessels
         select new {
           fixture_charterer = "", 
           fixture_work = ""
         };

CONCAT 是:

var demo = from vessel in db.tbl_vessels
         select new {
           fixture_note = fixture_charterer + " " + next_charterer_info 
         };

【讨论】:

    【解决方案2】:

    您可以轻松选择"" 等常量:

    var q = from v in ....
            ....
            select new 
            {
               ...,
               fixture_charterer = "",
               fixture_work = "",
               next_charterer_info = 
                   (v.fixture_charterer ?? "") + " " 
                 + (v.fixture_start == null ? "" : v.fixture_start.Substring(8,2)) 
            };
    

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 2019-11-26
      • 2012-09-17
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多