Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

sql wybierz pole na 2 kolumny

Musi istnieć relacja klucza podstawowego do klucza obcego do danych JOIN między dwiema tabelami.

To jest idea algebry relacyjnej i normalizacji. W przeciwnym razie korelacja danych jest bez znaczenia.

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

CROSS JOIN da Ci wszystkie możliwości. (1,4), (1,5), (1, 6) ... (3,6). Nie sądzę, że tego chcesz.

Zawsze możesz użyć funkcji ROW_NUMBER() OVER(), aby wygenerować klucz zastępczy w obu tabelach. Uporządkuj dane tak, jak chcesz, w klauzuli OVER (). Jednak to nadal nie jest w normalnej formie.

W skrócie. Dlaczego to robisz?

Szybka testowa baza danych. Przechowuje produkty sportowe i domowe w nietypowej formie.

Wyniki SELECT nic nie znaczą.

-- 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

Zdecydowanie potrzebujemy więcej informacji od użytkownika.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przekaż identyfikator najemcy przez połączenie z serwerem sql

  2. Utwórz wyzwalacz przed wstawieniem

  3. Zero impasu SQL z założenia - jakieś wzorce kodowania?

  4. Co oznacza znacznik czasu w T-Sql w C#?

  5. Jak zaktualizować wartość atrybutu xml w zmiennej xml za pomocą t-sql?