我有两张桌子:
CREATE TABLE [dbo].[Phrase] (
[PhraseId] UNIQUEIDENTIFIER DEFAULT (newid()) NOT NULL,
[English] NVARCHAR (250) NOT NULL,
[Kana] NVARCHAR (MAX) NULL,
[Kanji] NVARCHAR (MAX) NULL,
[FrequencyA] INT NULL,
PRIMARY KEY CLUSTERED ([PhraseId] ASC),
CONSTRAINT [FK_PhrasePhraseChapter] FOREIGN KEY ([ChapterId]) REFERENCES [dbo].[PhraseChapter] ([PhraseChapterShortId])
);
CREATE TABLE [dbo].[FreqLeeds] (
[Id] INT NOT NULL,
[Freq] DECIMAL (18, 5) NOT NULL,
[Text] NVARCHAR (50) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
如果Kanji列中的值与该FrequencyA
表中的值匹配,如何更新Phrase
表的Freq
列的FreqLeeds
列的整数值FreqLeeds中的Text列?请注意,我不会对小数点后的数字感到困扰
指向FreqLeeds
表。
答案 0 :(得分:0)
此查询可帮助您更新词组表。
UPDATE p
SET FrequencyA = CAST(fl.Freq as INT)
FROM dbo.Phrase p
JOIN dbo.FreqLeeds fl
ON fl.[Text] = p.Kanji
我想强调一点,如果Freq中的Decimal值大于Integer数据类型的范围,则会遇到错误。
当它们彼此相关时,避免在不同的表中使用不同的数据类型。