Линк sql, где ближе к числу - PullRequest
1 голос
/ 10 ноября 2009

у меня есть стол

Id Number
1   9
2   10
3   12
4   19
5   20

выберите идентификатор, где число ближе всего к 18 он должен вернуть строку 4, которая составляет 19

как мне написать это в linq и tsql? спасибо

1 Ответ

9 голосов
/ 10 ноября 2009
(from q in table
 orderby Math.Abs(18 - q.Number)
 select q).FirstOrDefault()

и

SELECT TOP 1
    *
FROM
    table
ORDER BY
    ABS(10 - Number)

и для даты

var nearTo = new DateTime(1999, 12, 31);
(from q in table
 orderby Math.Abs((nearTo - q.Date).TotalSeconds)
 select q).FirstOrDefault()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...