Po kilku badaniach znalazłem 2 możliwe odpowiedzi na moje pierwsze pytanie. Są one wymienione poniżej.
Opcja 1: Odpowiedź od Mitcha Wheata jest możliwą odpowiedzią. Jednakże, gdy chcemy sformatować wartość kolumny w obrębie SELECT, będziemy musieli utworzyć zdefiniowaną przez użytkownika funkcję skalarną za pomocą kodu T-SQL Mitcha i nazwać ten UDF naszym SQL.
-- =============================================
-- Description: Formats a number and truncates
-- the decimal part. You can pass
-- a number as a string or a numeric type.
-- =============================================
CREATE FUNCTION dbo.Utility_fn_FormatNumberAndTruncateDecimals
(
@unFormattedNumber VARCHAR(100)
)
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @val VARCHAR(100)
SET @val = convert(VARCHAR(50), cast(@unFormattedNumber AS MONEY), 1)
RETURN (SELECT left(@val, len(@val) - 3))
END
GO
--call this function using either of the SELECTS below
SELECT dbo.Utility_fn_FormatNumberAndTruncateDecimals('233444')
SELECT dbo.Utility_fn_FormatNumberAndTruncateDecimals(233444.345)
Opcja 2: Możemy użyć funkcji systemu wbudowana o nazwie „parsename”, jak w kodzie T-SQL poniżej, aby sformatować i obciąć dziesiętne.
SELECT PARSENAME(CONVERT(VARCHAR, CAST('2334442221.345222' AS MONEY), 1),2)
Jak zaznaczyć 2 odpowiedzi? Dodałem szczegółową odpowiedź i post Mitcha jest również odpowiedzią. – Sunil
Z SQL Server 2012+ Możesz użyć funkcji FORMAT(). Jako drugi parametr użyjesz "#, ##". http://msdn.microsoft.com/en-us/library/hh213505.aspx – Volvox
Możliwy duplikat [Jak sformatować liczbę przecinkami w T-SQL?] (https://stackoverflow.com/questions/4377352/how-do-i-format-a-number-with-commas-in-t-sql) –