我遇到了将数据从一个表移动到另一个表的问题。我有两个表,一个存储所有网站成员的用户,但有VIP会员在注册时获得随机点,而普通会员则不会。
+-----------+
| Users |
+-----------+
| User_id |
| Usertype |
| Firstname |
| Lastname |
| Email |
| Username |
| Password |
+-----------+
+-------------+
| VIP_Members |
+-------------+
| User_id |
| Username |
| Points |
+-------------+
我想选择所有VIP会员(由Usertype确定)并将其移至 VIP会员表:
INSERT INTO Vip_Members (Points)
VALUES (ABS(CHECKSUM(NewId())) % 11)
SELECT User_id, Username
FROM Users
WHERE Usertype = 'vip';
答案 0 :(得分:0)
您要在此处使用的语法是INSERT INTO ... SELECT
。当您想在VALUES
语句中插入文字常量时,主要使用INSERT
关键字。
INSERT INTO Vip_Members (User_id, Username, Points)
SELECT User_id, Username, ABS(CHECKSUM(NewId())) % 11
FROM Users
WHERE Usertype = 'vip';
作为旁注,我不知道为什么要将用户从Users
表移到单独的表中。我认为有一个类型列可以确定用户是否为VIP。