Взгляните на это:
>>> a = 256
>>> b = 256
>>> id(a)
9987148
>>> id(b)
9987148
>>> a = 257
>>> b = 257
>>> id(a)
11662816
>>> id(b)
11662828
EDIT: Вот что я нашел в документации Python 2, «Plain Integer Objects» (То же самое для Python 3 ):
Текущая реализация хранит массив целых объектов для всех целых чисел от -5 до 256, когда вы создаете int в этом диапазоне, на котором вы просто возвращаетесь ссылку на существующий объект. Поэтому должно быть возможно изменить значение 1. Я подозреваю, что поведение Python в этом случае не определено. : -)
blockquote>
SELECT C1, C2, C3
FROM (
select C1, C2, C3 from T1
union all
select C1, C2, C3 from T2
)
order by C3
Имена полей не требуются, чтобы быть равными. Вот почему Вы не можете использовать имя поля в порядке.
можно использовать полевой индекс вместо этого. Как в:
(select C1, C2, C3 from T1)
union all
(select C7, C8, C9 from T2)
order by 3
В Firebird 1.5 это работает на меня
create view V1 (C1, C2, C3) as
select C1, C2, C3 from T1
union all
select C1, C2, C3 from T2
и затем
select C1, C2, C3 from V1 order by C3
Выполните ОБЪЕДИНЕНИЕ ВСЕ в представлении (без пункта ORDER BY), затем выберите из представления с помощью ORDER BY.