Linq ВЫБЕРИ КАК и КОНКАТ
Мне дали 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
Большое спасибо
2 ответа
SELECT AS представлен как:
var demo = from vessel in db.tbl_vessels
select new {
fixture_charterer = "",
fixture_work = ""
};
КОНКАТ это:
var demo = from vessel in db.tbl_vessels
select new {
fixture_note = fixture_charterer + " " + next_charterer_info
};
Вы можете выбрать такие константы, как ""
без труда:
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))
};