У меня есть инструкция case, и я хочу написать отдельные предложения where для каждого из них: HIGH LOW MEDIUM и NONE.
CASE
WHEN (ISNUMERIC(REPLACE(ldd.Value, '%', '')) = 0)
THEN 'NONE'
WHEN (CONVERT(FLOAT,REPLACE(ldd.Value, '%', '')) > 9.0)
THEN 'HIGH'
WHEN (CONVERT(FLOAT,REPLACE(ldd.Value, '%', '')) < 7.0 )
THEN 'LOW'
WHEN (CONVERT(FLOAT,REPLACE(ldd.Value, '%','')) BETWEEN 7.0 AND 9.0 )
THEN 'MEDIUM'
WHEN (ISNULL(ldd.Value,'') = '')
THEN 'NONE'
END
когда я пытаюсь написать предложение where для NONE
SELECT class
,rollno
,Value
FROM STUDENT
WHERE (ISNUMERIC(REPLACE(ldd.Value, '%', '')) = 0)
Ошибка MSg: преобразование типа данных varchar в тип данных datetime привело к значению вне допустимого диапазона.
Когда я пишу для высокого
SELECT class
,rollno
,Value
FROM STUDENT
WHERE (CONVERT(FLOAT,REPLACE(ldd.Value, '%', '')) > 9.0)
Ошибка MSg: Ошибка преобразования типа данных varchar в число с плавающей точкой.
что можно сделать, чтобы получить только записи для высокого минимума или ни одного при записи предложения where?
ЦЕННОЕ ПОЛЕ VARCHAR