1
我有一個包含空格和逗號分隔符的定義的表。定義看起來像這個「貓,狗,馬,房子,城市」。逗號之前或之後會出現空格。如何通過從列中提取逗號分隔的文本到子表中來正常化表格?
CREATE TABLE [dbo].[WordForm]
(
[WordFormId] VARCHAR (20) NOT NULL,
[WordFormIdentity] INT IDENTITY (1, 1) NOT NULL,
[WordId] VARCHAR (20) NOT NULL,
[Definition] VARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([WordFormId] ASC),
CONSTRAINT [FK_WordFormPos]
FOREIGN KEY ([PosId]) REFERENCES [dbo].[Pos] ([PosId]),
CONSTRAINT [FK_WordFormWord]
FOREIGN KEY ([WordId]) REFERENCES [dbo].[Word] ([WordId])
);
我想刪除的定義柱,並用一個表格,表格中每行一個定義更換:
CREATE TABLE [dbo].[Definition]
(
[DefinitionId] INT IDENTITY (1, 1) NOT NULL,
[WordFormId] VARCHAR (20) NOT NULL,
[Text] VARCHAR (30) NOT NULL,
PRIMARY KEY CLUSTERED ([SynonymId] ASC),
CONSTRAINT [FK_DefinitionWordForm]
FOREIGN KEY ([WordFormId]) REFERENCES [dbo].[WordForm] ([WordFormId])
);
有人建議我怎麼可以把數據從Definition
柱插入的它放到新的Definition
表中的行的文本列中?希望解決方案也將檢查Definition
不爲空。
謝謝。
只需使用字符串分割功能將其從逗號分割,修剪數據並過濾出空值。有沒有一個特定的部分,你有麻煩? –
[亞倫伯特蘭拯救!](http://sqlperformance.com/2016/03/sql-server-2016/string-split) –
正常化的好決定! – ATC