2010-07-06 24 views
7

Eşleştirmenin sonucunu iki ondalık basamağa nasıl (%) doyarım? Bazı sonuçları döndürmek için aşağıdaki kullanıyorum : n yeterince büyük ondalık noktasının sol trunkatma değil bir numara olduğunuT-SQL Ondalık basamaklara yuvarlama

CAST((CAST(ftt.RANK as DECIMAL)/@topRank) AS DECIMAL(n,2)) as matchpercent, 

...:

DECLARE @topRank int 
set @topRank=(SELECT MAX(RANK) FROM 
FREETEXTTABLE(titles, notes, 'recipe cuisine', 1)) 
SELECT 
    ftt.RANK, 
    (CAST(ftt.RANK as DECIMAL)/@topRank) as matchpercent, --Round this 
    titles.title_id, 
    titles.title 
FROM Titles 
INNER JOIN 
FREETEXTTABLE(titles, notes, 'recipe cuisine') as ftt 
ON 
ftt.[KEY]=titles.title_id 
ORDER BY ftt.RANK DESC 

cevap

17

CAST/sonucunu DÖNÜŞTÜR . Yani, "123.456" kullanırsanız, toplam uzunluk 7 basamak olduğu için DECIMAL (7,2) kullanmanız gerekir.