Пытается запустить запрос для определения начала и остановки пробелов и островов в моей таблице. Я применяю запрос, который, как я думаю, будет работать для моего набора данных, но я не могу нормально работать. Я получаю ошибку преобразования, когда я запускаю этот код:Ошибки и острова Ошибка SQL
select start, stop
from (
select m.API_WellNo + 1 as start,
(select min(API_WellNo) - 1
from tblWellMaster x
where x.API_WellNo > m.API_WellNo) as stop
from tblWellMaster m left outer join tblWellMaster r on m.API_WellNo = r.API_WellNo - 1
where r.API_WellNo is null
) as x
where stop is not null;
Здесь ошибка я получаю: Преобразование значения NVARCHAR «31003022850000» переполнена столбец INT.
Я не могу понять, где это ИНТ колонна прибывает из, потому что мой API_WellNo является NVARCHAR (14)
Число является одним из ид, составлявшими последовательность, что я пытаюсь найти пробелы/островов, любая помощь очень ценится, спасибо
Я думаю, что 'min' является преобразование API_WellNo из NVARCHAR к междунар. Указанное число слишком велико для столбца int. – Robbert
'm.API_WellNo + 1' и' min (API_WellNo) - 1' вызвать неявное преобразование в числовой тип – Serpiton
Возможно, сделать конверт 'MIN (CAST (API_WellNo AS BIGINT))' – Mihai