Nejčastěji odpovídající uživatel
Formátování celého čísla

Dotaz
-
Dobrý den,
potřeboval bych přímo v dotazu naformátovat číslo "1234567" aby výsledek byl "1 234 567"
Je to typ int, takže bez desetiných míst, jen oddělovače tisíců. Jak na to? Potřebuji jej přímo v dotazu posléze spojit s jiným sloupcem nvarchar, takže přetypování nevadí.
Díky Petr
Odpovědi
-
Asi to není úplně ideální řešení, ale udělal jsem na to funkci takto:
CREATE FUNCTION [dbo].[Tisice] ( -- Add the parameters for the function here @Cislo bigint ) RETURNS nvarchar(25) AS BEGIN DECLARE @Vystup nvarchar(25) = ''; DECLARE @PrevedeneCislo nvarchar(50) = ''; SELECT @PrevedeneCislo = CONVERT(nvarchar(18),@Cislo) SELECT @PrevedeneCislo = RIGHT(' ' + @PrevedeneCislo,18) SELECT @Vystup = '' SELECT @Vystup = SUBSTRING(@PrevedeneCislo,16,3) SELECT @Vystup = SUBSTRING(@PrevedeneCislo,13,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo,10,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo, 7,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo, 4,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo, 1,3) + ' ' + @Vystup -- Return the result of the function SELECT @Vystup = LTRIM(@Vystup) RETURN @Vystup
Třeba se to bude někomu hodit.- Označen jako odpověď Petr BRABEC pondělí 25. března 2013 10:39
Všechny reakce
-
Asi to není úplně ideální řešení, ale udělal jsem na to funkci takto:
CREATE FUNCTION [dbo].[Tisice] ( -- Add the parameters for the function here @Cislo bigint ) RETURNS nvarchar(25) AS BEGIN DECLARE @Vystup nvarchar(25) = ''; DECLARE @PrevedeneCislo nvarchar(50) = ''; SELECT @PrevedeneCislo = CONVERT(nvarchar(18),@Cislo) SELECT @PrevedeneCislo = RIGHT(' ' + @PrevedeneCislo,18) SELECT @Vystup = '' SELECT @Vystup = SUBSTRING(@PrevedeneCislo,16,3) SELECT @Vystup = SUBSTRING(@PrevedeneCislo,13,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo,10,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo, 7,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo, 4,3) + ' ' + @Vystup SELECT @Vystup = SUBSTRING(@PrevedeneCislo, 1,3) + ' ' + @Vystup -- Return the result of the function SELECT @Vystup = LTRIM(@Vystup) RETURN @Vystup
Třeba se to bude někomu hodit.- Označen jako odpověď Petr BRABEC pondělí 25. března 2013 10:39
-
A co upgrade na SQL Server 2012 a využití funkce FORMAT() ?