Avatar billede powerboy Nybegynder
02. april 2003 - 18:17 Der er 2 kommentarer

formatNumber

VB har en Funktion som hedder formatNumber()
hvilket lave 1000 talssepration.
Denne funktion findes ikke så'en lige i ms sql.
Nogen ide til hvordan jeg gør dette ?
Og det skal værer i resultat sættet da det ikke er VB/asp der læser det og kan derfor ikke formatere resultatet.
Avatar billede pierrehusted Nybegynder
03. april 2003 - 10:33 #1
Det mest fornuftige ville efter min mening være at lade det program der viser dataene lave formateringen, og så lade databasen lave databasearbejde.
Avatar billede techhouse Nybegynder
03. april 2003 - 13:48 #2
Sådan kan det gøres...

create Procedure up_DecimalSeparator @Amount decimal(19), @R varchar(20) output
as
SELECT @R=
        Sig+RIGHT(d3+'.'+d2+'.'+d1+'.'+d0,
                          LEN(ABSN)+(LEN(ABSN)-1)/3)
FROM
(SELECT
    cast(ABS(@Amount) as int ) AS ABSN,
    CASE WHEN @Amount < 0 THEN '-' ELSE '' END AS Sig,
    Right(cast(cast(abs(@Amount) as int)as varchar(20)),3) AS d0,
    Right(cast(cast(abs(@Amount)/1000 as int)as varchar(20)),3) AS d1,
    Right(cast(cast(abs(@Amount)/1000000 as int)as varchar(20)),3) AS d2,
    Right(cast(cast(abs(@Amount)/1000000000 as int)as varchar(20)),3) AS d3
) Z

GO


Du kan checke/bruge den således

declare @@S varchar(20)
exec up_DecimalSeparator 12345678, @@S output
print @@S -- skriver 12.345.678
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester