左连接后的SQL Server MERGE列?

时间:2012-01-26 15:41:32

标签: asp.net sql-server visual-web-developer

我对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 1xName 2x(左连接上没有键匹配)。

我认为典型的响应是使用我的编程语言来解决这个问题,但是在使用GridViews的Visual Web Developer和所有这些废话中证明这是非常困难的,所以最有用的是数据库解决方案。 / p>

非常感谢!

2 个答案:

答案 0 :(得分:7)

SELECT coalesce(table1.Name, table2.Name) as YourName
FROM table1 
LEFT JOIN table2 ON 
table2.FKID = table1.ID 

COALESCE()将返回第一个NOT NULL值。这是你在找什么?

答案 1 :(得分:0)

COALESCE()将合并行。如果要合并列,请尝试以下方法:

SELECT CONCAT(ColA, ColB) AS ColAB