sqlserversql语句问题

select * from table1 

where 字段a = (select top 1 和表数据没关系的计算 as 字段a)

select * from table1 

where 字段a = (select top 1 和表数据没关系的计算 as 字段a from table1 )

这两种写法有什么区别吗,为什么出来的值不一样么

新建文本文档 (5).rar

FineReport SQL 狂奔的小蜗牛 发布于 2022-12-29 13:06 (编辑于 2022-12-29 15:40)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
LTC朝Lv6高级互助
发布于2022-12-29 13:11

单独执行这两句得到的结果一样吗?

image.png

最佳回答
0
北纬六十六度Lv4初级互助
发布于2022-12-29 13:19(编辑于 2022-12-29 13:22)

有区别,from table1 后面没条件的话 表里有多少数据会出多少条字段a

语句会报错

  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 怪我了,少写一个 top 1,我补上了。主要是问像我写的那个问题,子查询select 一个和表数据没关系的计算,这时候跟不跟from 表,数据有没有差异
    2022-12-29 13:28 
  • 北纬六十六度 北纬六十六度 回复 狂奔的小蜗牛(提问者) 如果跟表没有关系的计算,加了top1,我感觉数据没有差异,不会有不同的结果
    2022-12-29 13:36 
  • RFLJ RFLJ 回复 北纬六十六度 我刚试了下,加上top1的话是没有差异的
    2022-12-29 13:49 
  • 狂奔的小蜗牛 狂奔的小蜗牛(提问者) 回复 RFLJ 但是我那个加上表和top1就可以查到数据,不加没没数据,我上传了sql 语句在文件
    2022-12-29 15:38 
  • 2关注人数
  • 361浏览人数
  • 最后回答于:2022-12-29 15:40
    请选择关闭问题的原因
    确定 取消
    返回顶部