Saya memiliki masalah yang sangat sederhana yang tidak dapat saya pecahkan. Saya perlu melakukan sesuatu seperti ini:
select distinct * from (1, 1, 1, 2, 5, 1, 6).
Adakah yang bisa membantu ??
Edit
Data datang sebagai file teks dari salah satu klien kami. Ini benar-benar tidak diformat (ini adalah satu baris teks yang sangat panjang), tetapi dimungkinkan untuk melakukannya di Excel. Tapi itu tidak praktis bagi saya, karena saya perlu menggunakan nilai-nilai ini dalam kueri sql saya. Tidak nyaman melakukannya setiap kali saya perlu menjalankan kueri.
sql-server
select-query
Eedoh
sumber
sumber
$d = (1, 1, 1, 2, 5, 1, 6) | sort -Unique
untuk mendapatkan nilai berbeda dalam sebuah array$d
. Mudah diperluas ke alat file-ke-file.Jawaban:
Cara paling sederhana untuk mendapatkan nilai-nilai yang berbeda dari daftar panjang teks yang dibatasi koma adalah dengan menggunakan menemukan ganti dengan UNION untuk mendapatkan nilai-nilai yang berbeda.
Diterapkan pada baris panjang teks terbatas koma Anda
UNION SELECT
SELECT
di depan pernyataanAnda sekarang harus memiliki kueri yang berfungsi
sumber
Hanya tersedia di SQL Server 2008 dan lebih adalah baris-konstruktor dalam formulir ini:
Anda bisa menggunakan
Banyak yang menulis, di antaranya:
sumber
X
adalah alias untuk nama tabel dana
alias untuk nama kolom;).pgsql
dan sekarang membenturkan kepala untuk membuat FROM menerima nilai-nilai kecil sebagai catatan barissqlserver
, dan ini dia. Senang tahuSecara umum :
Dalam kasus Anda:
sumber
Sudahkah Anda mencoba menggunakan sintaks berikut?
sumber
SELECT DISTINCT table_name.column_name FROM (VALUES (1), (2), (3)) AS table_name(column_name)
Jika Anda ingin memilih hanya nilai-nilai tertentu dari satu tabel, Anda dapat mencoba ini
misalnya:
jika Anda ingin memilih dari beberapa tabel maka Anda harus memilih
UNION
.Jika Anda hanya ingin memilih nilai 1, 1, 1, 2, 5, 1, 6 maka Anda harus melakukan ini
sumber
PostgreSQL memberi Anda 2 cara untuk melakukan ini:
atau
menggunakan pendekatan array Anda juga dapat melakukan sesuatu seperti ini:
sumber
:)
Ini berfungsi pada SQL Server 2005 dan jika ada angka maksimal:
sumber
Saya tahu ini adalah utas yang cukup lama, tetapi saya sedang mencari sesuatu yang serupa dan muncul dengan ini.
Karena Anda memiliki string yang dipisahkan koma, Anda dapat menggunakannya
string_split
Ini harus kembali
Pemisahan string membutuhkan dua parameter, input string, dan karakter pemisah.
Anda dapat menambahkan pernyataan opsional tempat menggunakan
value
sebagai nama kolommenghasilkan
sumber
Jika Anda membutuhkan array, pisahkan kolom array dengan koma:
sumber
Cara lain yang dapat Anda gunakan adalah kueri seperti ini:
sumber
sumber
Teknik yang berhasil bagi saya adalah dengan menanyakan tabel yang Anda tahu memiliki banyak catatan di dalamnya, termasuk hanya bidang Row_Number di hasil Anda
akan mengembalikan set hasil 10.000 rekaman dari 1 hingga 10.000, gunakan ini dalam kueri lain untuk memberi Anda hasil yang diinginkan
sumber
Gunakan
In
fungsi SQLSesuatu seperti ini:
Berhasil di ArcGIS
sumber