- 判断一个数据是整数还是小数(这里有个类型转化的坑)
DECLARE @numA AS numeric(10,2),@numB AS numeric(10,2)
SELECT @numA=10.20,@numB=10.2
SELECT
CASE WHEN CAST(@numA AS INT)=@numA THEN '整数' ELSE '小数' END,
CASE WHEN CAST(@numB AS INT)=@numB THEN '整数' ELSE '小数' END
注:以上写法,如果需要根据判断输出不同类型的数据,会存在错误,因为,同一列需要进行类型统一
可以用以下写法
declare @result as varchar(10),@resultB as varchar(10)
DECLARE @numA AS smallmoney,@numB AS smallmoney
SELECT @numA=1.00,@numB=1.00
SELECT
CASE WHEN CAST(@numA AS INT)=@numA THEN cast(CAST(@numA AS INT) as varchar(10)) else cast( @numA as varchar(10)) END,
CASE WHEN CAST(@numB AS INT)=@numA THEN cast(CAST(@numB AS INT) as varchar(10)) else cast( @numB as varchar(10)) END