求写一个查询语句,面试时遇到的难题!

夜猫子罗 2015-03-10 03:42:05
a表字段
key,value
例如:
编码 值
A001 成都
B001 男
C001 党员

b表字段
姓名 性别 所在城市 政治面貌
张三 B001 A001 C001
李四 ...
王五 ...

查询结果应该是:
姓名 性别 所在城市 政治面貌
张三 男 成都 党员
李四 ...
王五 ...

求如何查询?
...全文
246 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
djb021 2015-03-11
  • 打赏
  • 举报
回复
select 姓名,case 性别 when B001 THEN '男' else '女' end, case 所在城市 when A001 THEN '成都' else 0 end, case 政治面貌 when C001 THEN '党员' else 0 end from b表
ll5497561 2015-03-11
  • 打赏
  • 举报
回复
select b.姓名, (select a.value from a where a.key=b.性别) as 性别, (select a.value from a where a.key=b.所在城市) as 所在城市, (select a.value from a where a.key=b.政治面貌) as 政治面貌 from b
iobvn335 2015-03-10
  • 打赏
  • 举报
回复
LS正解,就是两个表关联查询
还在加载中灬 2015-03-10
  • 打赏
  • 举报
回复
SELECT T1.姓名,T2.value[性别],T3.value[所在城市],T4.value[政治面貌]
FROM b表 T1
	LEFT JOIN a表 T2 ON T1.性别=T2.[key]
	LEFT JOIN a表 T3 ON T1.所在城市=T3.[key]
	LEFT JOIN a表 T4 ON T1.政治面貌=T4.[key]

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧