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
------解决方案--------------------
直接加就行,系统在执行这个语句时,会自动进行数据类型转化,会把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
*/