SQL Server MERGE столбцы после левого соединения? - PullRequest
1 голос
/ 26 января 2012

Я относительно новичок в SQL Server, поэтому надеюсь, что вы можете помочь.

В основном у меня есть две таблицы информации. Первый выглядит так:

  • table1 [ID, Name]
  • table2 [FKID, ID, Name]

Я хочу сделать заявление вроде:

SELECT table1.Name, table2.Name
FROM table1
LEFT JOIN table2 ON table2.FKID = table1.ID

В результате получается что-то вроде:

['Name 1a', 'Name 2a']
['Name 1b', NULL]
['Name 1c', NULL]

Но я хочу просто выбрать ОДИН столбец, который будет Name 1x или Name 2x, если он не равен нулю (в левом соединении не было совпадения клавиш).

Я предполагаю, что типичным ответом будет решение этой проблемы с использованием моего языка программирования, но это оказывается чрезвычайно трудным в Visual Web Developer с использованием GridViews и всей этой ерунды, так что было бы очень полезно решение для базы данных. 1027 *

Большое спасибо!

Ответы [ 2 ]

7 голосов
/ 26 января 2012
SELECT coalesce(table1.Name, table2.Name) as YourName
FROM table1 
LEFT JOIN table2 ON 
table2.FKID = table1.ID 

COALESCE() вернет первое значение NOT NULL. Это то, что вы ищете?

0 голосов
/ 25 августа 2014

COALESCE() объединит строки.Если вы хотите объединить столбцы, попробуйте что-то вроде:

SELECT CONCAT(ColA, ColB) AS ColAB
...