日期:2014-05-17  浏览次数:20519 次

MSSQL存储过的char类型判断
本帖最后由 qq705540946 于 2013-10-23 12:46:19 编辑
MSSQL存储过程里面。我有个数据类型是char(1) 然后我赋值给他,现在我需要判断他是1还是2
我写的IF xxx=1 或者 IF xxx='1' 
加引号和不加好像都不行。应该如何判断啊?或者是怎么在查询的时候把数据变成int类型呢?

------解决方案--------------------

declare @x char(1)

select @x='1'

if cast(@x as int)=1
 print '@x=1'
else
 print '@x!=1'


-- 结果
@x=1

------解决方案--------------------
引用:
Quote: 引用:


declare @x char(1)

select @x='1'

if cast(@x as int)=1
 print '@x=1'
else
 print '@x!=1'


-- 结果
@x=1


还想问下,float和int怎么相加啊
declare @a float ,@b int
set @a=@a+@b --这个应该怎么相加啊?


直接加就行,系统在执行这个语句时,会自动进行数据类型转化,会把int转化为float,但我们也可以手动转化,比如:


declare @a float ,@b int

set @a= 1000.123
set @b = 123


--系统会自动把int转化为float
select @a+@b 
/*
1123.123
*/


--手动转化@b为float类型
select @a + cast(@b as float) 
/*
1123.123
*/


--手动转化@a为int类型,这样两这个数相加后,就变为一个int类型的值
select cast(@a as int) + @b 
/*
1123
*/