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

sql pilih bidang menjadi 2 kolom

Harus ada kunci utama untuk hubungan kunci asing untuk GABUNG data antara dua tabel.

Itulah ide tentang aljabar relasional dan normalisasi. Jika tidak, korelasi data tidak ada artinya.

http://en.wikipedia.org/wiki/Database_normalization

CROSS JOIN akan memberi Anda semua kemungkinan. (1,4), (1,5), (1, 6) ... (3,6). Saya tidak berpikir itu yang Anda inginkan.

Anda selalu dapat menggunakan fungsi ROW_NUMBER() OVER() untuk menghasilkan kunci pengganti di kedua tabel. Pesan data seperti yang Anda inginkan di dalam klausa OVER(). Namun, ini masih belum dalam bentuk Normal.

Singkatnya. Mengapa melakukan ini?

Basis data tes cepat. Menyimpan produk dari barang olahraga dan barang rumah tangga menggunakan bentuk non-normal.

Hasil SELECT tidak berarti apa-apa.

-- Just play
use tempdb;
go

-- Drop table
if object_id('abnormal_form') > 0
drop table abnormal_form
go

-- Create table
create table abnormal_form
(
    Id int,
    Category int,
    Name varchar(50)
);

-- Load store products
insert into abnormal_form values
(1, 1, 'Bike'),
(2, 1, 'Bat'),
(3, 1, 'Ball'),
(4, 2, 'Pot'),
(5, 2, 'Pan'),
(6, 2, 'Spoon');

-- Sporting Goods
select * from abnormal_form where Category = 1

-- Home Goods
select * from abnormal_form where Category = 2

-- Does not mean anything to me
select Id1, Id2 from
(select ROW_NUMBER () OVER (ORDER BY ID) AS Rid1, Id as Id1 
 from abnormal_form where Category = 1) as s
join
(select ROW_NUMBER () OVER (ORDER BY ID) AS Rid2, Id as Id2 
 from abnormal_form where Category = 2) as h
on s.Rid1 = h.Rid2

Kami pasti membutuhkan lebih banyak informasi dari pengguna.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bisakah saya menetapkan skema default untuk dalam prosedur tersimpan?

  2. TDS Server - Gunakan Pernyataan Transact-SQL (T-SQL) Untuk Bekerja Dengan Data Salesforce di SQL Server

  3. Memeriksa apakah tanggal tertentu cocok di antara rentang tanggal

  4. Bucket Filling SQL query CTE

  5. Server vs Sumber Data dalam string koneksi