如何在sql语句中设置字段内容的格式呀?比如:数值为0则不显示,保留小数点位数为几位.

时间:2021-08-12 11:00:18
如何在sql语句中设置字段内容的格式呀?比如:数值为0则不显示,保留小数点位数为几位.
我想在在sql语句中设置显示格式后,以ado记录集传到本地,再放到表格控件(mshflexgrid)中显示,
这样直接绑定数据源就可以了,不用再单独设置表格的显示格式.
关键是如何通过sql语句设置比较方便呀?
1.对于数值,如果为0,则不显示,或为null
2.对于数值,指定显示的小数位数.不足补0.

还有一个问题我相问,如果只想显示内容,是不是可以把类型转成字符型呀?
比如数值型的字段,在sql语句中转换成字符型,再通过ado记录集传到本地,放在表格控件中显示.

5 个解决方案

#1


1\nullif()函数可以满足你的要求.nullif(data,0)
2\好象要在字段中设定小数位数的

#2


declare @t int
set @t=0
select nullif(@t,0)

declare @a dec(8,2)
set @a=1
select @a

#3


第一问:
case when 字段名=0 then '' end 


第二问:
SELECT CAST(1.0 AS DECIMAL(10, 3))

#4


转化用cast或者convert
declare @b dec(8,2)
set @b=1
select convert(varchar,@b)

declare @c dec(8,2)
set @c=1
select cast(@c as varchar)

#5


建議用fpSpread控件﹐其功能遠比mshflexgrid的強大
最好在前台處理﹐以減少SQL服務器的開銷

#1


1\nullif()函数可以满足你的要求.nullif(data,0)
2\好象要在字段中设定小数位数的

#2


declare @t int
set @t=0
select nullif(@t,0)

declare @a dec(8,2)
set @a=1
select @a

#3


第一问:
case when 字段名=0 then '' end 


第二问:
SELECT CAST(1.0 AS DECIMAL(10, 3))

#4


转化用cast或者convert
declare @b dec(8,2)
set @b=1
select convert(varchar,@b)

declare @c dec(8,2)
set @c=1
select cast(@c as varchar)

#5


建議用fpSpread控件﹐其功能遠比mshflexgrid的強大
最好在前台處理﹐以減少SQL服務器的開銷