SQL关于WHERE 的计算次序】的更多相关文章

WHERE可包含任意数目的AND和OR操作符.允许两者结合以进行复杂 和高级的过滤. 但是OR和AND操作符是有先后次序的. 比如,原意是想找出 3班和5班年龄为21岁的同学,使用 :SELECT * FROM STU WHERE CNO=3 OR CNO=5 AND SAGE=21; 但是,结果却是这样的: 明显有个20岁的不符合! 原因在于计 算的次序.SQL(像多数语言一样)在处理OR操作符前,优先处理AND操 作符.当SQL看到上述WHERE子句时,它理解为班级为5班且年龄为21岁的同学…
AND 用在where子句中,用来指示检索满足所有给定条件的行,而OR用在where子句中,用来指示检索匹配任一给定条件的行. Where子句中可包含任意数目的AND和OR操作符号,但是要注意在SQL规范中AND操作符的优先级要高于OR操作符. 若一时大意,操作符就会被错误组合,查询出来的结果也是与自己期望南辕北辙了. 假如需要列出价格为5元以上且由瑞兴生物制药公司或星城制药厂生产的所有产品 Select prod_name,prod_price From Products Where supp…
SQL 根据日期精确计算年龄 第一种: 一张人员信息表里有一人生日(Birthday)列,跟据这个列,算出该人员的年龄 datediff(year,birthday,getdate()) 例:birthday = '2003-3-8' getDate()= '2008-7-7' 结果为:5 这样结果是会返回该人员的大概年龄,但不精确.不会精确到月或日. 按照上面测试的日期,该人员的实际年龄应该还不满5岁.在需要精确年龄的时候,就会有错. 第二种: FLOOR(datediff(DY,birthd…
--通过经纬度计算两点之间的距离 create FUNCTION [dbo].[fnGetDistanceNew] --LatBegin 开始经度 --LngBegin 开始维度 --29.490295,106.486654,29.615467, 106.581515 (), ),)) Returns real AS BEGIN --转换location字段,防止字段太长.影响SQL美观 declare @LatBegin REAL declare @LngBegin REAL declare…
一.计算字段 1.1拼接字段 一般情况下返回的字段是指定列的属性名.如果有时我们对返回格式有特殊要求. 例如,我们需要将显示商品名,即商品价格,同时商品名后面的价格放在括号内. prod_name(prod_price) 以这种方式显示数据. 这时我们就需要使用拼接字段. 可以看到显示的 数据是以prod_name(prod_price)的格式显示的. 实现这个功能的过程中使用了一个函数:CONCAT(str1,str2,...). 该函数将str1,str2,..拼接起来显示. 1.2使用别名…
一.IRR计算的原理: 内部收益率(Internal Rate of Return (IRR)),就是资金流入现值总额与资金流出现值总额相等.净现值等于零时的折现率. 用公式 标识:-200+[30/(1+IRR)+30/(1+IRR)^2+....+30/(1+IRR)^10]=0.多次方程求解. 在计算机界求解高次方程的做法通常是利用牛顿插值法(Newton-Raphson)来实现,也有翻译牛顿迭代的. 二.关于牛顿迭代: 设r是  的根,选取 作为r的初始近似值,过点  做曲线  的切线L…
如果两个坐标的列是(x1,y1).(x2,y2),那么他们之间的距离:SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(Y1-Y2)) sql排序 SELECT * FROM m_store ORDER BY SQRT((121.517759-`longitude`)*(121.517759-`longitude`)+(31.178469-`latitude`)*(31.178469-`latitude`)) PHP计算距离 /***求两个已知经纬度之间的距离,单位为米*@param…
最近在网上找了下mysql查询随机的几个sql,我把最终的记录下来. SELECT * FROM uchome_mtag AS a JOIN (SELECT MAX(tagid) AS id FROM uchome_mtag) AS b ON (a.tagid>=FLOOR(b.id*RAND())) LIMIT 50 我试验后发现一个问题,当你的表里的总数和想要得到的条数很接近时,可能会不理想,有可能你有10条,你想查出随机的8条时,却只给出了5条的结果. 应该是那个大于等于造成的吧. 还有p…
今天遇到了一个奇怪的问题,公司目前在SQL Server上都采用AD域账号登录,由于账号人数众多,所以我们建立了一个AD Group(域组),将大家的AD账号加入了这个AD Group,然后我们将这个AD Group设置为了SQL Server的账号.按道理说所有在这个AD Group的AD账号都应该可以用SSMS的Windows认证登录SQL Server才对,但是奇怪的事情发生了,所有同事的AD账号都能够在SQL Server所在服务器的远程桌面上用SSMS登录SQL Server(Wind…
1.什么是表连接? 答:比如两张表,要获取的信息来自两张表,就需要通过外键的形式进行两张表的连接.最后产后组合信息. 表连接是通过join连接的.表连接说白了就是产生一个大表.表连接也都是用于查询上的,用户查询获得多种信息. 2.什么情况下用到分组? 答:涉及到每个“xxx字段”时,就是典型分组,要用group by xxx字段. 分组时,基本都要显示分组的字段,这样才能区分是哪个被分组的字段有什么数据. 比如从student表中查询每个院系有多少人 mysql> SELECT departme…