Dalam SQL Server ini menyisipkan 100 catatan, dari tabel pelanggan ke tmpFerdeen: -
SELECT top(100)*
INTO tmpFerdeen
FROM Customers
Apakah mungkin untuk melakukan SELECT INTO melintasi UNION ALL SELECT: -
SELECT top(100)*
FROM Customers
UNION All
SELECT top(100)*
FROM CustomerEurope
UNION All
SELECT top(100)*
FROM CustomerAsia
UNION All
SELECT top(100)*
FROM CustomerAmericas
Tidak terlalu yakin di mana menambahkan klausa INTO.
sql
sql-server
Ferdeen
sumber
sumber
Jawaban:
Ini berfungsi di SQL Server:
sumber
Anda tidak perlu tabel turunan sama sekali untuk ini.
Masukkan saja
INTO
setelah yang pertamaSELECT
sumber
"Blablabal" ini diperlukan
sumber
Untuk kueri MS Access, ini berfungsi:
Ini TIDAK berfungsi di MS Access
sumber
Saya akan melakukannya seperti ini:
sumber
Tantangan yang saya lihat dengan solusinya:
adalah bahwa ini membuat set data berjendela yang akan berada di RAM dan pada set data yang lebih besar solusi ini akan menciptakan masalah kinerja yang parah karena pertama-tama harus membuat partisi dan kemudian akan menggunakan partisi untuk menulis ke tabel temp.
Solusi yang lebih baik adalah sebagai berikut:
untuk memilih masukkan ke tabel temp dan kemudian tambahkan baris tambahan. Namun penarikan kembali ke sini adalah jika ada baris duplikat dalam data.
Solusi Terbaik adalah sebagai berikut:
Metode ini harus bekerja untuk semua tujuan yang memerlukan baris berbeda. Namun, jika Anda ingin baris duplikat cukup menukar UNION untuk UNION ALL
Semoga berhasil!
sumber
Mungkin coba ini?
sumber
Coba sesuatu seperti ini: Buat tabel objek akhir, tmpFerdeen dengan struktur serikat.
Kemudian
sumber