Язык определения данных (DDL) Query SQL - PullRequest
0 голосов
/ 31 октября 2018

Я новичок в запросах и SQL-сервере, и я хотел знать о DDL. У меня в таблице есть атрибут, который имеет более 1 значения, например Размер = {'S', 'M', 'L'}. Как я могу сделать атрибут в моей таблице с запросом, чтобы я мог вставить несколько значений в один из моих атрибутов?

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

согласно вашему требованию:

Product (..., ProductSize);

 INSERT INTO Product (ProductSize) VALUES ('S')

Как запросить строку ProductSize, чтобы я мог вставить более одного значения в SQL? -

Вы можете запросить, как показано ниже

 select * from Product where ProductSize like '%S%' or ProductSize like '%L%' or ProductSize like '%M%' 
0 голосов
/ 31 октября 2018

Вы не хотите этого делать, потому что это денормализует ваши данные. Но, если вам нужно.

declare @table table (id int identity(1,1),  size varchar(16))

insert into @table
values
('S')
,('M')

select * from @table

update @table
set size = size + ',M'
where id = 1

select * from @table

Вот подход «один ко многим» с внешним ключом

create table #items (id int identity(1,1), descrip varchar(64))

insert into #items
values
('shirt'),
('pants')

create table #item_sizes (id int identity(1,1), size char(1), item_id int)
alter table #item_sizes
add constraint FK_item foreign key (item_id) references #items(id)

insert into #item_sizes
values
('S',1)
,('M',1)
,('L',1)
,('S',2)

select 
    ItemID = i.id
    ,i.descrip
    ,isiz.size
from #items i
inner join #item_sizes isiz
on isiz.item_id = i.id


drop table #items, #item_sizes
...