[摘要]乙個朋友在展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
end
return @result
end
二、測試
drop table tt
create table tt(t1 int,t2 int)
insert into tt(t1 ,t2 )values(1,3)
insert into tt(t1 ,t2 )values(2,4)
insert into tt(t1 ,t2 )values(3,9)
insert into tt(t1 ,t2 )values(6,3)
insert into tt(t1 ,t2 )values(4,2)
insert into tt(t1 ,t2 )values(2,331)
select t1,t2,t1%t2 取餘,
最小公約數求法
最大公約數 求法 質因數分解法 質因數分解法 把每個數分別分解質因數,再把各數中的全部公有質因數提取出來連乘,所得的積就是這幾個數的最大公約數。例如 求24和60的最大公約數,先分解質因數,得24 2 2 2 3,60 2 2 3 5,24與60的全部公有的質因數是2 2 3,它們的積是2 2 3 ...
最大公約數 最小公倍數
求最大公約數最直接的辦法是從兩數中較小數與2之間的所有整數中乙個乙個的找。但這個方法有點浪費。有兩種有名的方法 1.輾轉相除法2.更相減損之術這兩種方法比較有名,而且現在人教版的高中數學中已經介紹了這兩種方法。下面這個是第2個,因為它只需要加減法就可以,效率高。int maxfactor unsig...
最小公倍數 最大公約數
求最小公倍數演算法 最小公倍數 兩整數的乘積 最大公約數 求最大公約數演算法 1 輾轉相除法 有兩整數a和 b a b得餘數c 若c 0,則 b即為兩數的最大公約數 若c 0,則 a b,b c,再回去執行 例如求27和 15的最大公約數過程為 27 15 餘12 15 12餘3 12 3餘0 因此...