Я столкнулся со следующей проблемой при решении задачи:
В базе данных Oracle у меня есть таблица ENTITY_INFO
, которая довольно проста по своей структуре.Он содержит 3 столбца:
ENTITY_ID (VARCHAR2)
- PK объекта в базе данных
NAME (VARCHAR2)
- название информации, т.е. "местоположение", "стоимость", "последнее столкновение"
VALUE (VARCHAR2)
- значение информации, то есть «активы / музыка», «1500», «1.1.2000»
В настоящее время мне нужно отфильтровать объекты, которые имеют свою «стоимость»"<1000. </p>
Наивный подход через
SELECT ENTITY_ID FROM ENTITY_INFO WHERE NAME = 'cost' AND TO_NUMBER(VALUE)<1000
не работает, поскольку столбец VALUE
содержит значения, которые не являются числами.Но все значения столбцов, которые соответствуют фильтру NAME = 'cost'
, являются числами, поэтому дело, которое мне нужно сделать, является действительным.
Я нашел Выберите строку в качестве числа в теме Oracle , но информация внутри оказалась бесполезной для решения этой проблемы.
Из-за характера ENTITY_INFO
и состояния проекта, изменение модели данных также не является жизнеспособным решением.
Спасибо за любые подсказки.