执行出来的结果集中的小数位0.的问题

zy19870908 2011-09-05 10:57:05
RT,如何把结果集中小数位上多余的O去掉,比如说我价格是9.400或者8.0000,要把那些0去掉,怎么弄?还有为什么我表中显示的是没有这些0的,执行语句得到的结果集中显示的是四位小数?求高手指教?!
...全文
87 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2011-09-05
  • 打赏
  • 举报
回复
查看一下字段類型,是保留4位小數位,如果要控制尾數為0時不顯示,只有自定義函數實現
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 roy_88 的回复:]
類型為money?

自定義函數控制


SQL code
CREATE FUNCTION fn_Num(@num MONEY)
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @s VARCHAR(20)
SELECT @s=REVERSE(RTRIM(@num)),@s=STUFF(@s,1,PATINDEX('%[^0]%'……
[/Quote]

谢谢大哥,我自己看看再。
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chuanzhang5687 的回复:]
后面小数点的位数! 比如说 decimal(19,4)
那么小数点后面应该 有四位小数,即使不到四位,用0填充!

引用 13 楼 zy19870908 的回复:
引用 10 楼 chuanzhang5687 的回复:
是不是你的该字段的数据类型是decimal(n,4)?

引用 8 楼 zy19870908 的回复:
引用 6 楼 geniuswjt 的回复:
SQL cod……
[/Quote]
恩。
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
这里回复的真快。。。超感人。
chuanzhang5687 2011-09-05
  • 打赏
  • 举报
回复
后面小数点的位数! 比如说 decimal(19,4)
那么小数点后面应该 有四位小数,即使不到四位,用0填充![Quote=引用 13 楼 zy19870908 的回复:]
引用 10 楼 chuanzhang5687 的回复:
是不是你的该字段的数据类型是decimal(n,4)?

引用 8 楼 zy19870908 的回复:
引用 6 楼 geniuswjt 的回复:
SQL code

--应该是unitprice精度的问题


说明白点,大哥,那为什么在表是没有后缀4位小数的,而结果集里就出来了呢?


精度表示什么意思?
[/Quote]
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 chuanzhang5687 的回复:]
是不是你的该字段的数据类型是decimal(n,4)?

引用 8 楼 zy19870908 的回复:
引用 6 楼 geniuswjt 的回复:
SQL code

--应该是unitprice精度的问题


说明白点,大哥,那为什么在表是没有后缀4位小数的,而结果集里就出来了呢?
[/Quote]

精度表示什么意思?
中国风 2011-09-05
  • 打赏
  • 举报
回复
類型為money?

自定義函數控制

CREATE FUNCTION fn_Num(@num MONEY)
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @s VARCHAR(20)
SELECT @s=REVERSE(RTRIM(@num)),@s=STUFF(@s,1,PATINDEX('%[^0]%',@s)-1,''),@s=REVERSE((CASE WHEN @s LIKE '.%' THEN STUFF(@s,1,1,'') ELSE @s END))
RETURN @s
END

GO
SELECT dbo.fn_Num(9.400)

--9.4

DROP FUNCTION fn_Num
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chuanzhang5687 的回复:]
unitprice 是什么类型的

引用 5 楼 zy19870908 的回复:
引用 2 楼 geniuswjt 的回复:
语句发一下

SELECT productname, unitprice, companyname, contactname
FROM products p JOIN suppliers s
ON p.supplierid=s.supplierid
WH……
[/Quote]

精度是19,小数位数是4,这样有点理解为什么结果集中是四位小数了。但我的问题是,输入表的数据的时候,它不是自动留四位小数的吗?
chuanzhang5687 2011-09-05
  • 打赏
  • 举报
回复
是不是你的该字段的数据类型是decimal(n,4)?[Quote=引用 8 楼 zy19870908 的回复:]
引用 6 楼 geniuswjt 的回复:
SQL code

--应该是unitprice精度的问题


说明白点,大哥,那为什么在表是没有后缀4位小数的,而结果集里就出来了呢?
[/Quote]
chuanzhang5687 2011-09-05
  • 打赏
  • 举报
回复
declare @unitprice decimal(18,4)
set @unitprice = 9.4
select @unitprice
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 geniuswjt 的回复:]
SQL code

--应该是unitprice精度的问题
[/Quote]

说明白点,大哥,那为什么在表是没有后缀4位小数的,而结果集里就出来了呢?
chuanzhang5687 2011-09-05
  • 打赏
  • 举报
回复
unitprice 是什么类型的
[Quote=引用 5 楼 zy19870908 的回复:]
引用 2 楼 geniuswjt 的回复:
语句发一下

SELECT productname, unitprice, companyname, contactname
FROM products p JOIN suppliers s
ON p.supplierid=s.supplierid
WHERE unitprice<=20

这是语句。 查询出来unitprice值里面……
[/Quote]
geniuswjt 2011-09-05
  • 打赏
  • 举报
回复

--应该是unitprice精度的问题
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 geniuswjt 的回复:]
语句发一下
[/Quote]
SELECT productname, unitprice, companyname, contactname
FROM products p JOIN suppliers s
ON p.supplierid=s.supplierid
WHERE unitprice<=20

这是语句。 查询出来unitprice值里面都是跟着四位小数的。
zy19870908 2011-09-05
  • 打赏
  • 举报
回复
SELECT productname, unitprice, companyname, contactname
FROM products p JOIN suppliers s
ON p.supplierid=s.supplierid
WHERE unitprice<=20

这是语句。 查询出来unitprice值里面都是跟着四位小数的。
--小F-- 2011-09-05
  • 打赏
  • 举报
回复
cast(col as dec(18,0))
geniuswjt 2011-09-05
  • 打赏
  • 举报
回复
语句发一下
AcHerat 2011-09-05
  • 打赏
  • 举报
回复
表中显示没有0,查询有,查询语句是怎样的。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧