SQL SELECT INTO Statement


SQL SELECT INTO เป็นคำสั่งที่ใช้เพื่อคัดลอกหรือ Copy ตารางหนึ่งไปยังตารางใหม่

รูปแบบการใช้คำสั่ง SELECT INTO

คำสั่งให้คัดลอกหรือ copy ทุกคอลัมน์ไปยังตารางใหม่

SELECT *
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

คำสั่งคัดลอกหรือ copy บางคอลัมน์ไปยังตารางใหม่

SELECT column1, column2, column3, ...
INTO newtable [IN externaldb]
FROM oldtable
WHERE condition;

ชื่อของตารางใหม่ที่ copy หรือคัดลอกมา จะใช้ชื่อตามคอลัมน์และประเภทตามที่กำหนดไว้ในตารางต้นฉบับ ซึ่งคุณสามารถสร้างชื่อคอลัมน์ใหม่ได้โดยใช้คำสั่ง As


ตัวอย่างการใช้งานคำสั่ง SQL SELECT INTO

ตัวอย่างด้านล่างนี้จะเป็นการใช้คำสั่ง SQL เพื่อคัดลอกหรือ copy ตารางลูกค้า

SELECT * INTO CustomersBackup2017
FROM Customers;

การใช้งานคำสั่ง SQL โดยใช้ IN เพื่อทำการคัดลอกหรือ copy ตารางไปยังตารางใหม่ในฐานข้อมูลอื่น

SELECT * INTO CustomersBackup2017 IN 'Backup.mdb'
FROM Customers;

รูปแบบคำสั่ง SQL เพื่อทำการคัดลอกหรือ copy บางคอลัมน์ ไปยังตารางใหม่

SELECT CustomerName, ContactName INTO CustomersBackup2017
FROM Customers;

คำสั่ง SQL ด้านล่างนี้จะคัดลอกหรือ copy เฉพาะลูกค้า “German” ไปยังตารางใหม่

SELECT * INTO CustomersGermany
FROM Customers
WHERE Country = 'Germany';

คำสั่ง SQL ด้านล่างนี้จะคัดลอกหรือ copy จากตารางที่มากกว่า 1 ตารางไปไปยังตารางใหม่

SELECT Customers.CustomerName, Orders.OrderID
INTO CustomersOrderBackup2017
FROM Customers
LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;

Tip: SELECT INTO สามารถใช้สร้างตารางใหม่ที่ไม่มีข้อมูลใดๆ เลยได้ด้วยนะ
เพียงแค่ใช้ schema (สคีมา) ของตารางอื่นก็ได้ โดยใช้คำสั่ง WHERE ซึ่งจะทำให้ query ไม่ต้องส่งค่าของข้อมูลกลับมา
SELECT * INTO newtable
FROM oldtable
WHERE 1 = 0;