繁体   English   中英

如何在SQL Server 2000中的select语句中使用案例

[英]how to use case with select statement in sql server 2000

我有一个表stdmarks具有以下结构

pk id bigint 
marks_obtained

我有一条如下的选择语句:

SELECT CASE WHEN marks_obtained<25 THEN marks_obtained+'*'
ELSE marks_obtained
END

当mark_obtained小于25且仅大于25时,我想打印类似{marks_obtained} *的东西{marks_obtained}

当我执行该语句时,出现以下错误:

将数据类型varchar转换为bigint时出错。

我尝试使用强制转换和转换将结果转换为varchar ,但没有成功如何解决?

您可以这样操作: http : //www.sqlfiddle.com/#!3/ef9f4/4

select 

  i = case when i >= 1 then 
          convert(varchar(100), i) + '*'
      else
          convert(varchar(100), i)
      end 

from test;

当然,您也可以这样做:

select 

  i = convert(varchar(100),i) + case when i >= 1 then '*' else '' end

from test;

DDL:

create table test
(
  i int
  );

insert into test values(1);

输出:

|  I |
------
| 1* |

为3年之久的问题添加答案。 我正在查询一个古老的MS SQL 7数据库,这是使用CASE语句完成的操作:

 CASE WHEN
        (SELECT COUNT(*)
      FROM Table1
      WHERE Table2.code = Table1.code)  > 1 
         THEN 'SET' 
      ELSE 'PIECE' END AS UnitOfProduct

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM