12
返回列表 发新帖
楼主: bq_wang

求SQL语句?列中的最大值

[复制链接]
论坛徽章:
23
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
11#
发表于 2003-7-18 10:39 | 只看该作者

Re: 谢谢了,如果SqlServer2000等其他数据库没有该函数,怎么班

最初由 bq_wang 发布
[B]谢谢了,如果SqlServer2000等其他数据库没有该函数,怎么班 [/B]


自己写函数解决吧,下面是个例子,仅供参考,可能有更好的方法(我对SQL Server不太熟)。


--创建函数的代码
CREATE FUNCTION Greater (@a int,@b int)  
RETURNS int AS  
BEGIN
if(@a>@b)
        return @a
else
        return @b
return @a
END

--创建表并写入数据
create table test(a int,b int,c int,d int);
insert into test values(1,2,3,4);
insert into test values(2,6,13,5);


--查询语句可以这样写:
select dbo.Greater(dbo.Greater(dbo.Greater(a,b),c),d) from test;

--结果:
         
-----------
4
13

(所影响的行数为 2 行)

使用道具 举报

回复
论坛徽章:
23
授权会员
日期:2005-10-30 17:05:332012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:362012新春纪念徽章
日期:2012-02-13 15:11:36马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14
12#
发表于 2003-7-18 10:50 | 只看该作者
另外要提一下的是,使用greatest函数时一定要注意它的隐式类型转换的问题,它会将函数内的所有表达式隐式转换为第一个表达式的类型,所以有时会出现看似很奇怪的现象:

SQL> create table test1( a int,b char(5),c int,d int);
SQL>  insert into test1 values(112,'9',54,73);
SQL>  insert into test1 values(7,'123',9,34);
SQL>  select greatest(a,b,c,d) from test1;

GREATEST(A,B,C,D)
-----------------
              112
              123
SQL>  select greatest(b,a,c,d) from test1;

GREATEST(B,A,C,D)
----------------------------------------
9
9
SQL> drop table test1;

完全相同的数据表,完全相同的函数,只是参数的顺序变了一下,却得到了完全不同的结果。

注:字符串的大小比较是从左向右比较其ASCII码的大小。

使用道具 举报

回复
论坛徽章:
181
慢羊羊
日期:2015-03-04 14:19:442015年新春福章
日期:2015-03-06 11:57:31
13#
 楼主| 发表于 2003-7-18 12:38 | 只看该作者

多谢了,楼上的各位

多谢了,楼上的各位

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表