Есть ли способ создать производный столбец на основе результата выражения в 10g?Oracle Derived Column На основе результата выражения
В частности, я унаследовал таблицу, которая содержит как символьные данные, так и числовые данные в поле varchar2. Очевидно, что это не вызывает головных болей при попытке выполнить объединения, так как я постоянно получаю ошибки «недопустимого числа», когда Oracle переупорядочивает мой запрос, который использует to_number() в поле. Итак, что я хотел бы сделать, это создать производный столбец, который имеет значение, если значение исходного столбца является числовым и NULL, если это не так, и использовать его в соединении, а не в поле со смешанными типами.
Обратите внимание, что я пытаюсь сделать это в запросе, а не в процедуре/функции.
Возможно ли такое?
Я бы также предложите поместить [регулярные выражения] (http://psoug.org/reference/regexp.html) в подзапрос, а затем просто присоединиться к ним. помните о двух вещах: (1) было бы лучше развести «один столбец, чтобы править ими всеми», и разделить эту таблицу на два столбца, чтобы избежать этих проблем (числа до чисел, текст в текст после); (2) если у вас есть столбец типа '12 abc 34 def ', вам лучше всего убедиться, что ваш regExp принимает нужные вам Alphas и нужные вам цифры, но я настоятельно рекомендую установить таблицу и перейти с # 1 – Harrison
Вы не можете (легко) решить, какие предложения выполняются сначала в запросе. Если соединение выполняется перед фильтром, это приведет к ошибкам числового преобразования. –