CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

请高手指点这条sql语句怎样写?

楼主prince13(wang)2003-11-01 12:53:52 在 MS-SQL Server / 基础类 提问

有这样一个表(table1):  
   
    a       b  
    1       2  
    2       3  
    3       2  
    4       4  
   
  我想查出这样一个结果:  
  select   a,b   from   table1  
  如果b=2,那么显示b=20  
   
  请问怎样用一条sql语句实现,有没有类似iif之类的函数?  
  问题点数:50、回复次数:3Top

1 楼txlicenhe(马可)回复于 2003-11-01 12:58:34 得分 30

Select   a,(case   when   b=2   then   20   else   b   end)   as   b   from   table1  
  Top

2 楼txlicenhe(马可)回复于 2003-11-01 12:59:55 得分 0

CASE  
  计算条件列表并返回多个可能结果表达式之一。    
   
  CASE   具有两种格式:    
   
  简单   CASE   函数将某个表达式与一组简单表达式进行比较以确定结果。    
   
   
  CASE   搜索函数计算一组布尔表达式以确定结果。    
  两种格式都支持可选的   ELSE   参数。    
   
  语法  
  简单   CASE   函数:  
   
  CASE   input_expression  
          WHEN   when_expression   THEN   result_expression  
                  [   ...n   ]  
          [    
                  ELSE   else_result_expression  
          END  
   
  CASE   搜索函数:  
   
  CASE  
          WHEN   Boolean_expression   THEN   result_expression  
                  [   ...n   ]  
          [    
                  ELSE   else_result_expression  
          END  
   
  参数  
  input_expression  
   
  是使用简单   CASE   格式时所计算的表达式。Input_expression   是任何有效的   Microsoft®   SQL   Server™   表达式。    
   
  WHEN   when_expression  
   
  使用简单   CASE   格式时   input_expression   所比较的简单表达式。When_expression   是任意有效的   SQL   Server   表达式。Input_expression   和每个   when_expression   的数据类型必须相同,或者是隐性转换。    
   
  n  
   
  占位符,表明可以使用多个   WHEN   when_expression   THEN   result_expression   子句或   WHEN   Boolean_expression   THEN   result_expression   子句。  
   
  THEN   result_expression  
   
  当   input_expression   =   when_expression   取值为   TRUE,或者   Boolean_expression   取值为   TRUE   时返回的表达式。result   expression   是任意有效的   SQL   Server   表达式。    
   
  ELSE   else_result_expression  
   
  当比较运算取值不为   TRUE   时返回的表达式。如果省略此参数并且比较运算取值不为   TRUE,CASE   将返回   NULL   值。Else_result_expression   是任意有效的   SQL   Server   表达式。Else_result_expression   和所有   result_expression   的数据类型必须相同,或者必须是隐性转换。  
   
  WHEN   Boolean_expression  
   
  使用   CASE   搜索格式时所计算的布尔表达式。Boolean_expression   是任意有效的布尔表达式。    
   
  结果类型  
  从   result_expressions   和可选   else_result_expression   的类型集合中返回最高的优先规则类型。有关更多信息,请参见数据类型的优先顺序。    
   
  结果值  
  简单   CASE   函数:  
  计算   input_expression,然后按指定顺序对每个   WHEN   子句的   input_expression   =   when_expression   进行计算。    
   
   
  返回第一个取值为   TRUE   的   (input_expression   =   when_expression)   的   result_expression。    
   
   
  如果没有取值为   TRUE   的   input_expression   =   when_expression,则当指定   ELSE   子句时   SQL   Server   将返回   else_result_expression;若没有指定   ELSE   子句,则返回   NULL   值。    
  CASE   搜索函数:  
  按指定顺序为每个   WHEN   子句的   Boolean_expression   求值。  
   
   
  返回第一个取值为   TRUE   的   Boolean_expression   的   result_expression。    
   
   
  如果没有取值为   TRUE   的   Boolean_expression,则当指定   ELSE   子句时   SQL   Server   将返回   else_result_expression;若没有指定   ELSE   子句,则返回   NULL   值。    
  示例  
  A.   使用带有简单   CASE   函数的   SELECT   语句  
  在   SELECT   语句中,简单   CASE   函数仅检查是否相等,而不进行其它比较。下面的示例使用   CASE   函数更改图书分类显示,以使其更易于理解。  
   
  USE   pubs  
  GO  
  SELECT       Category   =    
              CASE   type  
                    WHEN   'popular_comp'   THEN   'Popular   Computing'  
                    WHEN   'mod_cook'   THEN   'Modern   Cooking'  
                    WHEN   'business'   THEN   'Business'  
                    WHEN   'psychology'   THEN   'Psychology'  
                    WHEN   'trad_cook'   THEN   'Traditional   Cooking'  
                    ELSE   'Not   yet   categorized'  
              END,  
        CAST(title   AS   varchar(25))   AS   'Shortened   Title',  
        price   AS   Price  
  FROM   titles  
  WHERE   price   IS   NOT   NULL  
  ORDER   BY   type,   price  
  COMPUTE   AVG(price)   BY   type  
  GO  
   
  下面是结果集:  
   
  Category                         Shortened   Title                       Price                                              
  -------------------   -------------------------   --------------------------    
  Business                         You   Can   Combat   Computer   S   2.99                                                
  Business                         Cooking   with   Computers:   S   11.95                                              
  Business                         The   Busy   Executive's   Data   19.99                                              
  Business                         Straight   Talk   About   Compu   19.99                                              
   
                                                                                              avg  
                                                                                              ==========================  
                                                                                              13.73                                              
   
  Category                         Shortened   Title                       Price                                              
  -------------------   -------------------------   --------------------------    
  Modern   Cooking             The   Gourmet   Microwave           2.99                                                
  Modern   Cooking             Silicon   Valley   Gastronomi   19.99                                              
   
                                                                                              avg  
                                                                                              ==========================  
                                                                                              11.49                                              
   
  Category                         Shortened   Title                       Price                                              
  -------------------   -------------------------   --------------------------    
  Popular   Computing       Secrets   of   Silicon   Valley   20.00                                              
  Popular   Computing       But   Is   It   User   Friendly?     22.95                                              
   
                                                                                              avg  
                                                                                              ==========================  
                                                                                              21.48                                              
   
  Category                         Shortened   Title                       Price                                              
  -------------------   -------------------------   --------------------------    
  Psychology                     Life   Without   Fear                   7.00                                                
  Psychology                     Emotional   Security:   A   New   7.99                                                
  Psychology                     Is   Anger   the   Enemy?               10.95                                              
  Psychology                     Prolonged   Data   Deprivatio   19.99                                              
  Psychology                     Computer   Phobic   AND   Non-P   21.59                                              
   
                                                                                              avg  
                                                                                              ==========================  
                                                                                              13.50                                              
   
  Category                         Shortened   Title                       Price                                              
  -------------------   -------------------------   --------------------------    
  Traditional   Cooking   Fifty   Years   in   Buckingham   11.95                                              
  Traditional   Cooking   Sushi,   Anyone?                         14.99                                              
  Traditional   Cooking   Onions,   Leeks,   and   Garlic   20.95                                              
   
                                                                                              avg  
                                                                                              ==========================  
                                                                                              15.96                                              
   
  (21   row(s)   affected)  
   
  B.   使用带有简单   CASE   函数和   CASE   搜索函数的   SELECT   语句  
  在   SELECT   语句中,CASE   搜索函数允许根据比较值在结果集内对值进行替换。下面的示例根据图书的价格范围将价格(money   列)显示为文本注释。  
   
  USE   pubs  
  GO  
  SELECT         'Price   Category'   =    
              CASE    
                    WHEN   price   IS   NULL   THEN   'Not   yet   priced'  
                    WHEN   price   <   10   THEN   'Very   Reasonable   Title'  
                    WHEN   price   >=   10   and   price   <   20   THEN   'Coffee   Table   Title'  
                    ELSE   'Expensive   book!'  
              END,  
        CAST(title   AS   varchar(20))   AS   'Shortened   Title'  
  FROM   titles  
  ORDER   BY   price  
  GO  
   
  下面是结果集:  
   
  Price   Category                 Shortened   Title              
  ---------------------   --------------------    
  Not   yet   priced                 Net   Etiquette                  
  Not   yet   priced                 The   Psychology   of   Co    
  Very   Reasonable   Title   The   Gourmet   Microwav    
  Very   Reasonable   Title   You   Can   Combat   Compu    
  Very   Reasonable   Title   Life   Without   Fear          
  Very   Reasonable   Title   Emotional   Security:      
  Coffee   Table   Title         Is   Anger   the   Enemy?      
  Coffee   Table   Title         Cooking   with   Compute    
  Coffee   Table   Title         Fifty   Years   in   Bucki    
  Coffee   Table   Title         Sushi,   Anyone?                
  Coffee   Table   Title         Prolonged   Data   Depri    
  Coffee   Table   Title         Silicon   Valley   Gastr    
  Coffee   Table   Title         Straight   Talk   About      
  Coffee   Table   Title         The   Busy   Executive's    
  Expensive   book!               Secrets   of   Silicon   V    
  Expensive   book!               Onions,   Leeks,   and   G    
  Expensive   book!               Computer   Phobic   And      
  Expensive   book!               But   Is   It   User   Frien    
   
  (18   row(s)   affected)  
   
  Top

3 楼pengdali()回复于 2003-11-01 13:38:52 得分 20

Select   a,case   when   b=2   then   20   else   b   end   b   from   table1  
   
  或:  
   
  Select   a,case   b   when   2   then   20   else   b   end   b   from   table1Top

相关问题

  • 请高人指点--怎样用sql语句返回表中第10-20条记录???
  • sql语句错误,请大家指点。
  • 急,高手指点 SQL语句问题
  • 求一sql语句!高手指点!
  • 一条SQL语句,请高人指点
  • 一段SQL语句 请大家指点
  • 高手入内指点SQL语句
  • sql语句,请大家指点一下
  • SQL语句求解?请高手指点!!
  • 请高手指点--SQL语句问题

关键词

  • 函数
  • 语句
  • 表达式
  • 子句
  • expression
  • 返回
  • cooking
  • 示例
  • 简单
  • 格式

得分解答快速导航

  • 帖主:prince13
  • txlicenhe
  • pengdali

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo