[英]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.