一个很基础的查询时的别名问题,求老鸟帮忙了!

aojunpeng313001 2005-09-22 03:21:09
SELECT (CASE Code WHEN 1 THEN 'A' ELSE 'B' END) AS Name, (SELECT Count(*) FROM A2 WHERE ID = A1.ID) AS Code FROM A1

如上所示,我要做一个类似上面形式的查询,前面的字段要用到后面字段的内容,,而字段的顺序不能改变,上面的东西怎么能实现呢?上面的写法会提示Code错误的,小鸟很菜,求老鸟们帮忙了,先拜大家一个了。
...全文
138 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lisiyong 2005-09-22
  • 打赏
  • 举报
回复
SELECT (CASE Code WHEN 1 THEN 'A' ELSE 'B' END) AS Name,Code
FROM (
SELECT ID,(SELECT Count(*) FROM A2 WHERE ID = A1.ID) 'Code'

FROM A1
) t
wgsasd311 2005-09-22
  • 打赏
  • 举报
回复
select (CASE count(*) WHEN 1 THEN 'A' ELSE 'B' END) AS Name,count(*) as code
from A1 a left join A2 b on a.id=b.id
group by a.id
churchatp1 2005-09-22
  • 打赏
  • 举报
回复
长一点没有关系啊
你首先要看你的需求啊
子陌红尘 2005-09-22
  • 打赏
  • 举报
回复
select
Name = (CASE t.Code WHEN 1 THEN 'A' ELSE 'B' END)
from
A1
inner join
(SELECT Code=Count(*) FROM A2 group by ID) t
on
A1.ID = t.ID
vivianfdlpw 2005-09-22
  • 打赏
  • 举报
回复
SELECT (CASE Code WHEN 1 THEN 'A' ELSE 'B' END) AS Name
,Code
FROM (
SELECT ID
,(SELECT Count(*) FROM A2 WHERE ID = A1.ID) 'Code'
FROM A1
)t
aojunpeng313001 2005-09-22
  • 打赏
  • 举报
回复
。。。楼上的方法我知道,不过我的表里有40多的字段,并且查询表做字段的有30多个,如果用上面的方法有点让SQL文太长了,没有别的好方法吗?
churchatp1 2005-09-22
  • 打赏
  • 举报
回复
SELECT (case ( SELECT Count(*) FROM A2 WHERE ID = A1.ID) WHEN 1 THEN 'A' ELSE 'B' END) AS Name, (SELECT Count(*) FROM A2 WHERE ID = A1.ID) AS Code FROM A1
churchatp1 2005-09-22
  • 打赏
  • 举报
回复
SELECT case ( SELECT Count(*) FROM A2 WHERE ID = A1.ID) WHEN 1 THEN 'A' ELSE 'B' END) AS Name, (SELECT Count(*) FROM A2 WHERE ID = A1.ID) AS Code FROM A1

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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