假设我有一个大表TBL_LARGE_TABLE,说100列(column1,column2,... column100都可以为空),我的客户端给了我一个查询,所以我可以过滤掉某些行:
SELECT * FROM TBL_LARGE_TABLE
WHERE
COLUMN2='00123'
AND
(COLUMN3 LIKE '%garbage%' OR COLUMN3 LIKE '%trash%')
AND
COLUMN100='0';
现在,我想将TBL_LARGE_TABLE
中的数据放入另一个表TBL_ANOTHER_LARGE_ONE
。从TBL_LARGE_TABLE
插入TBL_ANOTHER_LARGE_ONE的最佳方法是什么,排除将传递上述SELECT语句的所有行?我不想删除任何数据,我希望原始表保持原样。我只想选择与上面SELECT语句完全相反的内容。
答案 0 :(得分:0)
INSERT INTO TBL_ANOTHER_LARGE_ONE
SELECT *
FROM TBL_LARGE_TABLE
WHERE NOT
(
COLUMN2='00123'
AND
(COLUMN3 LIKE '%garbage%' OR COLUMN3 LIKE '%trash%')
AND
COLUMN100='0
)
答案 1 :(得分:0)
INSERT INTO TBL_ANOTHER_LARGE_ONE
SELECT *
FROM TBL_LARGE_TABLE
WHERE
COLUMN2 <>'00123'
AND
(COLUMN3 NOT LIKE '%garbage%' OR COLUMN3 NOT LIKE '%trash%')
AND
COLUMN100 <>'0'
)