日期:2014-05-18  浏览次数:20492 次

SQL 分数怎样处理 1/3
如:1/3   我用什么数据类型

------解决方案--------------------
字符串 varchar
------解决方案--------------------
探讨
如:1/3   我用什么数据类型

------解决方案--------------------
看你要的精度了,可以用float或者decimal
------解决方案--------------------
用DECIMAL
------解决方案--------------------
cast(1/3 as dec(18,3))
------解决方案--------------------
探讨

字符串 varchar

------解决方案--------------------
探讨
如:1/3   我用什么数据类型

------解决方案--------------------
SQL code
create table tb(col varchar(10))
insert into tb select '1/3'
select * from tb
/*
col
----------
1/3

(1 行受影响)

*/
go
drop table tb

------解决方案--------------------
探讨
我要做运算。。。

------解决方案--------------------
探讨
引用:
我要做运算。。。
所以我建议用两个字段?

------解决方案--------------------
在字段里存运算表达式

用触发器来做吧


------解决方案--------------------
非要用一個字段存的話要用varchar,計算的時候用下面的代碼
SQL code

declare @字段名 varchar(20)
set @字段名='1/3'

select cast(left(@字段名,charindex('/',@字段名)-1) as dec(18,3))/
cast(right(@字段名,len(@字段名)-charindex('/',@字段名)) as dec(18,3))

------解决方案--------------------
select cast(1.0*1/3 as dec(18,3))
------解决方案--------------------
试了下,可能有问题,似乎只能拆解。
------解决方案--------------------
字符类型 varchar(50) ,并且如果遇到不知道到类型的 都可以用这个类型