Используя тип объекта в избранном операторе в Oracle

Часть проблемы - то, что столько частей на самом деле легко не истолковано как части. Например, 0.33 не 1/3, это - 33/100. Но если Вы помните свое обучение начальной школы, тогда существует процесс преобразования десятичных значений в части, однако это вряд ли даст Вам, что Вы хотите, так как большинство десятичных чисел времени не хранится в 0,33, но 0.329999999999998 или некоторые такой.

Делают себе одолжение и не беспокоятся этим, но если Вы должны тогда, можно сделать следующее:

Умножают исходное значение на 10, пока Вы не удаляете дробную часть. Сохраните то число и используйте его в качестве делителя. Тогда сделайте ряд упрощений путем поиска общих знаменателей.

Так 0.4 был бы 4/10. Вы тогда искали бы общие делители, запускающиеся с низких значений, вероятно, простые числа. Начиная с 2, Вы видели бы, делит ли 2 и числитель и знаменатель равномерно путем проверки, совпадает ли этаж подразделения с самим подразделением.

floor(5/2) = 2
5/2 = 2.5

Так 5 не делится 2 равномерно. Таким образом Вы проверяете следующее число, говорите 3. Вы делаете это, пока Вы не нападаете или выше квадратного корня меньшего числа.

После того, как Вы сделаете это тогда, Вам нужно

8
задан Chris B 19 October 2009 в 18:19
поделиться

1 ответ

Оператор select в вопросе будет работать. Это не удалось, потому что я не включил псевдоним для встроенного представления.

По какой-то причине это сработает:

select
    iv.func_data.a,
    iv.func_data.b,
    iv.func_data.c
from
    (select
        test_func(mt.input) as func_data
    from
        my_table mt) iv

Но это не будет:

select
    func_data.a,
    func_data.b,
    func_data.c
from
    (select
        test_func(mt.input) as func_data
    from
        my_table mt)
10
ответ дан 5 December 2019 в 14:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: