В вашем запросе:
SELECT * FROM dbeplanningv3.dbo.usulan_dpr
WHERE CONVERT(VARCHAR, evaluasi) is null
or
trim(CONVERT(VARCHAR, evaluasi)) = '' ORDER BY [detail] ASC OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY
только ORDER BY [detail]
может вызвать эту ошибку, поэтому я предполагаю, что [detail]
имеет тип text
(этот столбец не виден на вашем скриншоте).Чтобы избежать ошибки, следует преобразовать ее в varchar (max):
SELECT * FROM dbeplanningv3.dbo.usulan_dpr
WHERE CONVERT(VARCHAR, evaluasi) is null
or
trim(CONVERT(VARCHAR, evaluasi)) = '' ORDER BY convert(varchar(max), [detail]) ASC OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY
Но важный вопрос заключается в том, почему в SQL Server 2012 вы все еще используете тип данных text
?Вы должны конвертировать их в varchar(max)
и избегать их разыгрывания постоянно.
Кроме того, этот разыгрывание CONVERT(VARCHAR, evaluasi) is null
бессмысленно.Вы можете проверить evaluasi is null
напрямую.