Возьмите данные из таблицы B, если она существует, в противном случае сохраните таблицу A (после некоторых столбцов).

#sql #db2

Вопрос:

Я пытаюсь достичь того, что показано в примере, идея состоит в том, чтобы получить данные из таблицы B, если она существует, и это касается столбцов col1=col3 и col2=col4. не уверен, возможно ли это с помощью SQL или нет

 
col1  col2   
a     b      
c     d    
e     f         

Table B:

col3 col4   
NULL  x      
y     NULL    
NULL  NULL         


Final_Table:

col1  col2   
a     x      
y     d    
e     f 
 

Комментарии:

1. Посмотрите на объединение ( db2tutorial.com/db2-basics/db2-coalesce )

2. Таблица SQL — это не электронная таблица, это набор. В таблице нет N-й строки , поэтому невозможно заменить содержимое этой строки содержимым этой строки до тех пор, пока не будет общего уникального идентификатора.

3. Может быть, использовать курсоры?

4. Ваш вопрос, по-видимому, предполагает упорядочение строк. Но таблицы SQL представляют собой неупорядоченные наборы. Порядок не существует, если в столбце не указан порядок.

5. Этот вопрос не имеет смысла в реляционной базе данных. Как говорит @astentx, реляционные таблицы не являются электронными таблицами. Голосование за закрытие.

Ответ №1:

Вам нужен первичный ключ для сравнения двух или более таблиц. Это невозможно, если нет первичного ключа.

Комментарии:

1. Подойдет любое правило сопоставления, даже если это искусственный ключ заказа.