[英]How to add two string columns from different tables SQL Server?
我试图将char数据类型的两列加在一起,以便将其代码与描述结合起来。
table1包含了我需要的所有数据,我仅引用table2以获得描述。
例如,table1具有列:
Code
1
2
表2包含列:
Code Description
1 Football
2 Soccer
我基本上是想写一个查询,我可以在其中显示一列
1 - Football
2 - Soccer
我努力了:
SELECT
a.Code + ' - ' + b.Description
FROM table1 a
LEFT JOIN table2 b
ON a.Code = b.Code
尽管这样做确实将各列加在一起,但由于某种原因,由于某些原因,它还会产生很多重复的行。
基本上,我只是想要table1中的任何代码,以匹配table2中的代码并带来该Description。
在第二张表为null的情况下使用合并,在避免重复的情况下使用distinct
合并
SELECT distinct a.Code +' - ' + coalesce(b.Description,'')
FROM table1 a
LEFT JOIN table2 b
ON a.Code = b.Code
or try like below and i dont think you needed join you can do it just by using 2nd tabale
SELECT
b.Code ||' - ' || b.Description)
from
table2 b
您可以使用ISNULL
处理来自table2的缺失值:
SELECT
a.Code + ISNULL(' - ' + b.Description, '')
FROM table1 a
LEFT JOIN table2 b
ON a.Code = b.Code
使用“左联接”,您可以获得表A中可能不存在于表B中的值。要消除重复项,您可以尝试
SELECT DISTINCT
a.Code + ' - ' + b.Description
FROM table1 a
LEFT JOIN table2 b
ON a.Code = b.Code
要么
SELECT
a.Code + ' - ' + b.Description
FROM table1 a
LEFT JOIN table2 b
ON a.Code = b.Code
GROUP BY a.Code, b.Description
table1和table2之间是什么关系? 我看到上面的查询返回重复项的唯一方法是:如果table1和table2之间的关系是1:Many。 意味着表1中的一行可以匹配表2中的多行。
SELECT DISTINCT a.Code + ' - ' + COALESCE(b.Description, '') FROM table1 a LEFT JOIN table2 b ON a.Code = b.Code;
SELECT DISTINCT a.Code + ' - ' + b.Description FROM table1 a INNER JOIN table2 b ON a.Code = b.Code;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.