加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

具有不同列的T-SQL联合

发布时间:2020-12-12 08:53:33 所属栏目:MsSql教程 来源:网络整理
导读:我有两个表,其中包含以下数据: [Animals].[Males]DataID HerdNumber HerdID NaabCodee46fff54-a784-46ed-9a7f-4c81e649e6a0 4 'GOLDA' '7JE1067'fee3e66b-7248-44dd-8670-791a6daa5d49 1 '35' NULL[Animals].[Females]DataID HerdNumber HerdID BangsNumber9
我有两个表,其中包含以下数据:
[Animals].[Males]
DataID                               HerdNumber HerdID  NaabCode
e46fff54-a784-46ed-9a7f-4c81e649e6a0 4          'GOLDA' '7JE1067'
fee3e66b-7248-44dd-8670-791a6daa5d49 1          '35'    NULL

[Animals].[Females]
DataID                               HerdNumber HerdID   BangsNumber
987110c6-c938-43a7-a5db-194ce2162a20 1          '9'      'NB3829483909488'
1fc83693-9b8a-4054-9d79-fbd66ee99091 2          'NATTIE' 'ID2314843985499'

我想将这些表合并到一个如下所示的视图中:

DataID                               HerdNumber HerdID   NaabCode  BangsNumber
e46fff54-a784-46ed-9a7f-4c81e649e6a0 4          'GOLDA'  '7JE1067' NULL
fee3e66b-7248-44dd-8670-791a6daa5d49 1          '35'     NULL      NULL
987110c6-c938-43a7-a5db-194ce2162a20 1          '9'      NULL      'NB3829483909488'
1fc83693-9b8a-4054-9d79-fbd66ee99091 2          'NATTIE' NULL      'ID2314843985499'`

当我使用UNION关键字时,SQL Server生成了一个将NaabCode和BangsNumber合并为一列的视图.我在常规SQL上的一本书建议使用UNION CORRESPONDING语法:

SELECT *
FROM [Animals].[Males]
UNION CORRESPONDING (DataID,HerdNumber,HerdID)
SELECT *
FROM [Animals].[Females]`

但是当我输入这个SQL Server时,“CORRESPONDING’附近的语法不正确.”

谁能告诉我如何实现我想要的结果和/或如何在T-SQL中使用UNION CORRESPONDING?

解决方法

你可以这样做:
SELECT DataID,HerdID,NaabCode,NULL as BangsNumber
FROM [Animals].[Males]
UNION ALL
SELECT DataID,NULL as NaabCode,BangsNumber
FROM [Animals].[Females]

SQL Fiddle

我不记得SQL Server支持相应的语法,但我可能错了.无论如何,此查询将为男性的BangsNumber列选择null,为女性选择NaabCode列,同时正确选择其他所有内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读