Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Permintaan SQL untuk mendapatkan hasil dalam dua kolom saja

Anda dapat menggunakan UNPIVOT fungsi untuk mengubah kolom menjadi baris:

select id, value
from yourtable
unpivot
(
  value
  for col in ([fName], [lName], [Address], [PostCode], [ContactNumber])
) unpiv

Lihat SQL Fiddle dengan Demo .

tidak berputar akan membutuhkan tipe data pada semua kolom menjadi sama. Jadi, Anda mungkin harus melakukan cast /convert pada setiap kolom dengan tipe data berbeda yang mirip dengan ini:

select id, value
from
(
  select id, [fName], [lName], [Address], [PostCode],
    cast([ContactNumber] as varchar(15)) [ContactNumber]
  from yourtable
) src
unpivot
(
  value
  for col in ([fName], [lName], [Address], [PostCode], [ContactNumber])
) unpiv;

Lihat SQL Fiddle dengan Demo .

Mulai dari SQL Server 2008, ini juga dapat ditulis menggunakan CROSS APPLY dengan VALUES :

select t.id,
  c.value
from yourtable t
cross apply
(
  values(fName), 
    (lName), 
    (Address), 
    (PostCode), 
    (cast(ContactNumber as varchar(15)))
) c (value)

Lihat SQL Fiddle dengan Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrip Inventaris Koleksi SQL Server -1

  2. Daftar Semua Database dari Server Tertaut di SQL Server (Contoh T-SQL)

  3. Bagaimana cara melewatkan parameter Bernilai Tabel dari java ke prosedur tersimpan server sql?

  4. Buat lebih dari satu indeks yang tidak berkerumun pada kolom yang sama di SQL Server

  5. Memperbarui baris dalam tabel berdasarkan sub kueri pada tabel yang sama