Sql server 从mssql中的1个表创建3个表
我正在创建一个赛马数据数据库。数据从网络中刮取,放入excel,然后放入MS SQL数据库中的单个表Sql server 从mssql中的1个表创建3个表,sql-server,Sql Server,我正在创建一个赛马数据数据库。数据从网络中刮取,放入excel,然后放入MS SQL数据库中的单个表Race\u Master 这些列包括以下数据: date pos odds btnby going horsename trainername jockeyname 当然,马、骑师和驯马师的名字是以一种低效和非关系的方式存储的,有许多重复的条目。因此,我创建了3个新表: horse_name trainer_name jockey_name 这些表中没有重复项 我现在如何创建一个新表,该表将
Race\u Master
这些列包括以下数据:
date
pos
odds
btnby
going
horsename
trainername
jockeyname
当然,马、骑师和驯马师的名字是以一种低效和非关系的方式存储的,有许多重复的条目。因此,我创建了3个新表:
horse_name
trainer_name
jockey_name
这些表中没有重复项
我现在如何创建一个新表,该表将从Race\u Master
获取数据,而不是使用驯马师和骑师的姓名,而是参考相应的表并使用其id作为参考 要创建表格:
create table dbo.Race(
ID int identity not null primary key
,JockeyID int references dbo.Jockey(ID)
,HorseID int references dbo.Horse(ID)
,TrainerID int references dbo.Trainer(ID)
)
go
要插入其行,请执行以下操作:
with
jockey as (
select JockeyID
from dbo.Jockey j
join dbo.Race_Master
on Race_Master.JockeyName = j.JockeyName
),
trainer as (
select TrainerID
from dbo.Trainer t
join dbo.Race_Master
on Race_Master.TrainerName = t.TrainerName
),
horse as (
select HorseID
from dbo.HOrse h
join dbo.Race_Master
on Race_Master.HorseName = h.HorseName
)
insert Race(JockeyID,HorseID,TrainerID)
select jockey.ID,horse.ID,trainer.ID;
如果您已经创建了一个表,那么
INSERT INTO NewTable (MasterID, JockeyID, TrainerID, HorseID)
SELECT M.MasterID, J.JockeyID, T.TrainerID , H.HorseID
FROM Race_Master M
INNER JOIN Jockeys J ON M.JockeyName = J.JockeyName
INNER JOIN Trainer T ON M.TrainerName = T.TrainerName
INNER JOIN Horse H ON M.HorseName = H.HorseName
如果要动态创建表
SELECT M.MasterID, J.JockeyID, T.TrainerID , H.HorseID
INTO New_Table
FROM Race_Master M
INNER JOIN Jockeys J ON M.JockeyName = J.JockeyName
INNER JOIN Trainer T ON M.TrainerName = T.TrainerName
INNER JOIN Horse H ON M.HorseName = H.HorseName
您的问题“如何创建…?”或“如何插入…?”对于延迟的响应,是否表示抱歉。感谢所有回复的人