关于SQL中=号的讨论

wzy4850 2009-03-06 05:05:04
在SQL中如果是
use pubs
go
select * from titles where title_id = 'BU1032'
这个里面等号是用来做为赋值的title_id就等于 BU1032

select '成本价'=price-price*03 from titles
这个里面=号也可以算是为赋值,虽然是用来做列名
可是
select titles.title_id,au_fname
from titles,authors,titleauthor
where titleauthor.au_id = authors.au_id and titles.title_id = titleauthor.title_id
里面的=号的意义是什么呢?authors.au_id 原本只有23行数据 titleauthor.au_id原本有25行数据 titles.title_id只有18行数据但是这条语句执行完以后出来的数据却是25条他到底是怎么组合的?求教!
...全文
111 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
hui_hui_2007 2009-03-09
  • 打赏
  • 举报
回复
sql server中,好象赋值与比较是同一个字符,如果象C++那样就好了,

赋值为=,比较为== 更便于理解些。
txt_paul 2009-03-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 wzy4850 的帖子:]
在SQL中如果是
use pubs
go
select * from titles where title_id = 'BU1032'
这个里面等号是用来做为赋值的title_id就等于 BU1032

select '成本价'=price-price*03 from titles
这个里面=号也可以算是为赋值,虽然是用来做列名
可是
select titles.title_id,au_fname
from titles,authors,titleauthor
where titleauthor.au_id = authors.au_id and titles.title_id = titleauthor.title_id
里面的…
[/Quote]
select * from titles where title_id = 'BU1032' 这句的意思是 “帮我找出所有title_id等于BU1032的行”,你英语很差吧。Where 后面的不是赋值,是查找条件,"当...的时候"
txt_paul 2009-03-09
  • 打赏
  • 举报
回复
那是相等的意思 ,等于 C# 的 == ,
赋值是得使用 SET 或者 SELECT 时,那叫赋值。
fflcat 2009-03-09
  • 打赏
  • 举报
回复
究竟怎么弄阿
claro 2009-03-08
  • 打赏
  • 举报
回复
帮顶
qizhengsheng 2009-03-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 HEROWANG 的回复:]
=有两个含义,一个是比较运算符,一个是复制运算符。视具体情况而定

[/Quote]

ChinaJiaBing 2009-03-06
  • 打赏
  • 举报
回复

1.表示复值运算符
2.在判断语句中=表示相等...
  • 打赏
  • 举报
回复
=有两个含义,一个是比较运算符,一个是复制运算符。视具体情况而定
wzy4850 2009-03-06
  • 打赏
  • 举报
回复
恩,我只是不知道2列之间的=等号该怎么去理解!
blacky8 2009-03-06
  • 打赏
  • 举报
回复
可以这样理解,组合是在FROM子句中做的
肥龙上天 2009-03-06
  • 打赏
  • 举报
回复
= 既可以作为判断语句此时相当与 c,c# 中的==
也可以作为赋值语句
,楼主稍微注意一下,就能看出来差别的
blacky8 2009-03-06
  • 打赏
  • 举报
回复

SQL Select语句完整的执行顺序:

1、from子句合并来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。

PB菜鸟 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 firecc05 的回复:]
1. 不要扩大赋值的含义。
2.至于组合,这样理解,先笛卡尔集,再用where语句筛选。
[/Quote]
正解
blacky8 2009-03-06
  • 打赏
  • 举报
回复
这里的“=”是比较运算符;比较两个表字段值是否相等
firecc05 2009-03-06
  • 打赏
  • 举报
回复
1. 不要扩大赋值的含义。
2.至于组合,这样理解,先笛卡尔集,再用where语句筛选。

34,838

社区成员

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

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