У меня проблема с базой данных.У меня есть следующее:
create table book
(
name_b varchaR(50) primary key,
typee varchaR(50) not null,
nmbr integer unique not null,
yeare numeric(4,0) default null,
)
create table story
(
id integer identity(1,1) primary key,
name_s varchar(100) not null,
chars varchar(100) not null,
code varchaR(200) null,
artist varchar(100) default null,
argument varchar(100) default null,
book_ref_name varchar(50) references book(name_b),
book_ref_nmbr integer references book(nmbr)
)
insert into story values
('StoryName1','StoryChars1',null,default,default,'BookName1',13),
('StoryName2','StoryChars2',null,default,default,'BookName2',35),
('StoryName3','StoryChars3',null,default,default,'BookName3',125)
insert into book values
('BookName1','Type1',13,default),
('BookName2','Type2',35,default),
('BookName3','Type3',125,default)
, что я хочу с этим, это STORY.CODE, который должен быть заменен с NULL на соединение строк, например представьте первую запись таблицы STORY
('StoryName1','StoryChars1',null,default,default,'BookName1',13)
в этом случае я бы хотел, чтобы STORY.CODE был заменен на 'StoryName1-StoryChars1-BookName1-13'.
это вообще возможно?если это не то, что ближайшая возможность что-то подобное?спасибо заранее
еще одно сомнение у меня, как я могу сделать оператор SELECT, который выбирает * из STORY, кроме нулевых полей.например, если в истории нет аргументатора / исполнителя, я не хочу, чтобы это поле отображалось.