Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Firebird, Interbase > добавить пустую строку в выборку


Автор: TheCetus 7.4.2006, 11:46
Стоит следующая задача:
необходимо создать вьюшку которая будет выбирать все записи из таблицы + одну пустую строку (все столбцы null)...
делаю следующим способом:
Select
a,b,c
from tbl
union
select
null, null, null
from rdb$database

Автор: TheCetus 7.4.2006, 11:48
Стоит следующая задача:
необходимо создать вьюшку которая будет выбирать все записи из таблицы + одну пустую строку (все столбцы null)...
делаю следующим способом:
Select
a,b,c
from tbl
union
select
null, null, null
from rdb$database
но вьюшка не компилится, пишет что неверный тип...
Как побороть?
Добавлено @ 11:58
select
a, b, c
from tbl
union
select
null as a,
null as b,
null as c
from rdb$database тоже не помогает

Автор: Бонифаций 7.4.2006, 12:18
а поля a, b, c - какого типа?

cast() не пробовали?

Автор: TheCetus 7.4.2006, 15:20
a - integer
b - varchar(250)
c - varchar(50)

Автор: Alex 8.4.2006, 11:59
Типы столбцов a, b и с какие?

Автор: TheCetus 8.4.2006, 15:56
использование cast решает вопрос, спасибо

Автор: TheCetus 8.4.2006, 15:56
использование cast решает вопрос, спасибо!

Автор: sergejzr 8.4.2006, 16:01
Модератор: в следующий раз не следует создавать две темы по одному вопросу.

соеденил темы

Автор: Akella 4.5.2006, 10:45
у меня безо вских cast представление (View) компилиться и работает нормально

Код

CREATE VIEW VW_FOUNDED(
    ID,
    LCD,
    INPUT_DATE,
    ROOMS_Q,
    ROOMS_HO,
    AREA_S,
    AREA_G,
    AREA_I,
    AREA_K,
    FLOOR,
    FLOORS,
.....
AS
--Квартиры, дома, новостройки
--                     ID,   LCD,   INPUT_DATE,   ROOMS_Q, ROOMS_HO,  AREA_S,   AREA_G,   AREA_I,   AREA_K,   FLOOR,   FLOORS,   PRICE,   HOUSE_NUM,   KORP_NUM,   APART_NUM,   IS_PHONE,  IS_REFRIGERATOR,  IS_TV,  IS_FURNITURE,   ORIENTIR,   REMARK,   REMARK2,   BALCONY,   BALCONY_GLASS,   DATE_LETTING,   DELETED,   ID_TYPE,   ID_REGION,   ID_STREET,   ID_MATERIALS,   ID_SERVICE,   ID_RAZDEL,   ID_GAZ,   ID_UNDERGROUNDSTATION,   ID_STATE,   ID_EX,   ID_FIRMA_BUILD,   FIRMA_BUILD_NAME,   STATE_NAME,   UNDERGROUNDSTATION,   NAME_IS,    REGION_NAME,   STREET_NAME,   SERVICE_NAME,   PLANIROVKA,   MATERIAL_NAME,   GAZ_NAME,   TYPE_NAME,   EXLUSIVE_NAME,   PHONES_LIST)
SELECT               A.ID, A.LCD, A.INPUT_DATE, A.ROOMS_Q,     null,    null, A.AREA_G, A.AREA_I, A.AREA_K, A.FLOOR, A.FLOORS, A.PRICE, A.HOUSE_NUM, A.KORP_NUM, A.APART_NUM, A.IS_PHONE,             NULL,   NULL,          NULL, A.ORIENTIR, A.REMARK, A.REMARK2, A.BALCONY, A.BALCONY_GLASS, A.DATE_LETTING, A.DELETED, A.ID_TYPE, A.ID_REGION, A.ID_STREET, A.ID_MATERIALS, A.ID_SERVICE, A.ID_RAZDEL, A.ID_GAZ, A.ID_UNDERGROUNDSTATION, A.ID_STATE, A.ID_EX, A.ID_FIRMA_BUILD,            FB.NAME,      ST.NAME,               U.NAME,    I.NAME,         R.NAME,        S.NAME,       SRV.NAME,    RAZD.NAME,          M.NAME,     G.NAME,      T.NAME,          EX.NAME, A.PHONES_LIST

FROM APART A
     LEFT JOIN INFOSOURCE           I       ON (A.ID_INFOSOURCE = I.ID)
     LEFT JOIN REGIONS              R       ON (A.ID_REGION = R.ID)
     LEFT JOIN STREETS              S       ON (A.ID_STREET = S.ID)
     LEFT JOIN SERVICES             SRV     ON (A.ID_SERVICE = SRV.ID)
     LEFT JOIN RAZDEL               RAZD    ON (A.ID_RAZDEL = RAZD.ID)
...

--Посредники
union
--                          ID,   LCD,   INPUT_DATE,   ROOMS_Q,   ROOMS_HO, AREA_S,   AREA_G,   AREA_I,   AREA_K,   FLOOR,   FLOORS,   PRICE,   HOUSE_NUM,   KORP_NUM,   APART_NUM,   IS_PHONE,  IS_REFRIGERATOR,  IS_TV,  IS_FURNITURE,   ORIENTIR,   REMARK,   REMARK2,   BALCONY,   BALCONY_GLASS,   DATE_LETTING,      DELETED,   ID_TYPE,   ID_REGION,   ID_STREET,   ID_MATERIALS,   ID_SERVICE,   ID_RAZDEL,   ID_GAZ,   ID_UNDERGROUNDSTATION,   ID_STATE,   ID_EX,   ID_FIRMA_BUILD,   FIRMA_BUILD_NAME,   STATE_NAME,   UNDERGROUNDSTATION,   NAME_IS,    REGION_NAME,   STREET_NAME,   SERVICE_NAME,   PLANIROVKA,   MATERIAL_NAME,   GAZ_NAME,   TYPE_NAME,   EXLUSIVE_NAME,     PHONES_LIST)
  SELECT                MED.ID,  null,         null,      null,       null,   null,     null,     null,     null,    null,     null,    null,        null,        null,       null,       null,             null,   null,          null,       null,     null,      null,      null,            null,           null,  med.DELETED,         8,        null,        null,           null,         null,        null,     null,                    null,       null,    null,             null,               null,         null,                 null,      null,       MED.NAME,          null,           null,         null,            null,       null,        null,            null, MED.PHONES_LIST

from MEDIATORS MED
...
и т.д.
  

Автор: TheCetus 23.5.2006, 09:22
у меня FireBird 1.5, без cast ругается на неопределенные типы 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)