[摘要]一个朋友在展BOM的时候有这样的需求,两列字段(数值):A ,B A=用量,B=底数,组成用量=用量/底数。A/B,若能被整除,显示整除的结果,若不能整除显示分数形式A/B(分数形式要是约分后的格式)3/6=1/3。
我的思路:
1.SQL取余判断是否能被整除
2.撰写两个整形数值的最大公约数,然后分子与分母分别除以最大公约数。
其中进行转换化成字符串格式。
一、自定义最大公约数函数:
Create FUNCTION [dbo].[GetMaxgongyue] ( @num1 int , @num2 int ) RETURNS int as begin DECLARE @times INT DECLARE @min INT DECLARE @result BIGINT IF( @num1 >= @num2 ) SET @min=@num2 ELSE SET @min=@num1 SET @times=@min WHILE(@times <= @min ) BEGIN IF( @num1%@times = 0 AND @num2%@times = 0 ) BEGIN SET @result=@times BREAK END SET @times=@times - 1