--好像没有,要自己写
declare @x1 int, @x2 int, @max int
select @x1=10, @x2=15
--取较大者
select @max= case when @x1>@x2 then @x1  else @x2 end 
/*或者用if做也比较简单
set @max=@x1
if @x2>@max set @max=@x2
*/
select @max --显示结果

解决方案 »

  1.   

    MIN
    返回表达式的最小值。 语法
    MIN ( [ ALL | DISTINCT ] expression ) 参数
    ALL对所有的值进行聚合函数运算。ALL 是默认设置。DISTINCT指定每个唯一值都被考虑。DISTINCT 对于 MIN 无意义,使用它仅仅是为了符合 SQL-92 兼容性。expression常量、列名、函数以及算术运算符、按位运算符和字符串运算符的任意组合。MIN 可用于数字列、char 列、varchar 列或 datetime列,但不能用于 bit 列。不允许使用聚合函数和子查询。返回类型
    返回类型与 expression 相同。重要  当使用 CUBE 或 ROLLUP 时,不支持区分聚合,例如 AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)、MAX(DISTINCT column_name)、MIN(DISTINCT column_name) 和 SUM(DISTINCT column_name)。如果使用,则 Microsoft® SQL Server™ 就会返回错误信息并结束查询。
    注释
    MIN 忽略任何空值。对于字符列,MIN 查找排序序列的最低值。示例
    下面的示例返回年度销售额最低的书。USE pubs
    GO
    SELECT min(ytd_sales)
    FROM titles
    GO下面是结果集:----------- 
    111         (1 row(s) affected)
      

  2.   

    如果你问, 一组数中取最小者的函数.那就没有我以前找了半天也没找到. 注意min聚集函数是实现不了该要求的
      

  3.   

    to vivianfdlpw:顺便问一个问题.如果现在我们有一张考勤表.
    结构为(id , m1, m2, m3, ...., m12)
    id为员工号, m1为第一个月迟到数, m2为第二个月的迟到数, m3....(依次类推)现在想求每个员工, 一年中, 迟到最多的一个月的迟到次数.
      

  4.   

    to vivianfdlpw:顺便问一个问题.如果现在我们有一张考勤表.
    结构为(id , m1, m2, m3, ...., m12)
    id为员工号, m1为第一个月迟到数, m2为第二个月的迟到数, m3....(依次类推)现在想求每个员工, 一年中, 迟到最多的一个月的迟到次数.
    ========
    把表转换成
    [id] [cishu]
    id    m1
    id    m2
    id    m3
    .....
    id    m12
    的形式?
    select max([cishu]) from tablename group by id就不知道转换效率如何 
    呵呵 :)
      

  5.   

    我的具体问题是这样的:
    有如下三列
    a   b    c
    3   4    3
    4   5    3选出a列和b列中小的一个,用这个值跟c列比,比c列还大的值,应该如何实现啊?谢谢!!
      

  6.   

    to 陈苏文:
    用a列和b列的较小则与c列相比, 然后呢?然后做什么啊?to summerICEREDTEA(过年前争取上星 :)) :
    那样肯定慢得离谱的啦。 还不如通过定义一个很多if的用户自定义函数来实现。
      

  7.   

    declare @a int ,@b int @c int,,@min int
    select @a=a,@b=b,@c=c from minmax
    set @min=@a
    if @a>@b set @min=@b
    if @min > @c 
    --你想做什么?
    select @min
      

  8.   

    to summerICEREDTEA(过年前争取上星 :)) :
    那样肯定慢得离谱的啦。 还不如通过定义一个很多if的用户自定义函数来实现。
    ======
    哈哈 我学SQL 才1个半月 -。-
    只是我怎么想的  就怎么说咯 :)
    我连语法都不是很熟悉 还要学习啊
      

  9.   

    呵呵, 
    大胆猜想, 小心检验.我学SQL也才两个多月. 彼此彼此. 学习学习. 交流交流.
      

  10.   


    --不知道楼主是不是这个意思create table tb
    (
    a  int,
    b  int,
    c  int
    )
    insert tb
    select '3','4','3' union all
    select '4','5','3'select * from tb
    where ( case when a>b then b else a end ) >cdrop table tb
    /*
    4 5 3
    */