每当我通过群发电子邮件联系时,我都希望为每个帐户添加备注。到目前为止,我正在看这样的事情:
INSERT INTO Customer_notes (Note_text)
VALUES ('emailed June 1st')
WHERE Customer_Level = 'Alpha'
这显然不起作用,UPDATE / SET将取代我以前的所有笔记。
答案 0 :(得分:1)
嗯,你可以这样做:
INSERT INTO Customer_notes (Note_text)
Note_Text = COALESCE(Note_text + '
', '') + 'emailed June 1st')
WHERE Customer_Level = 'Alpha';
但是,每个客户似乎需要多个便条。所以也许:
INSERT INTO Customer_notes (Customer_Level, Note_text)
VALUES ('Alpha', Note_Text);
这假设Customer_Level
是某种客户ID。
答案 1 :(得分:1)
如果您的意思是将该文本添加到现有行的Note_text中当前存在的任何内容,请尝试此操作..
UPDATE Customer_notes
SET Note_text = ISNULL(Note_text, '') + ' emailed June 1st'
WHERE Customer_Level = 'Alpha'
{基于此答案中的第五条评论编辑}
好的,然后我们选择了同一张桌子而不是VALUES。试试这个(Holy Gawd先备份)如果想要在这个表中创建另一行WHERE Customer_Level ='Alpha'。
INSERT INTO Customer_Notes (CustomerID, note_text)
SELECT CustomerID, 'emailed June 1st'
FROM CustomerNotes
WHERE Customer_Level = 'Alpha'
如果Customer_Level是所有客户的子集,并且这里的想法是仅为这些客户中的每一个插入一行,而不是每个自定义/现有行的一行,则确实存在问题。如果是这种情况,你将不得不为我们进一步描述。