Hussein Fawzy Hussein Fawzy - 7 months ago 43
SQL Question

SELECT $ (dollar sign)

I have good experience in SQL Server,
But suddenly I discovered this strange

SELECT
command

SELECT $


or

SELECT $ FROM tableName


All the time it returns zero scalar value (
0.00
),
or a new column with all values of
0.00


What is that?

Answer

When SQL Server comes across your $ sign, it automatically converts it into a money data type. Because you don't have an explicit value after the dollar sign, SQL Server is assuming 0.00. From MSDN:

When converting to money or smallmoney, integers are assumed to be monetary units. For example, the integer value of 4 is converted to the money equivalent of 4 dollars (for us_english, the default language). Numbers to the right of the decimal in floating-point values are rounded to four decimal places for money values. Expressions of data types char or varchar that are being converted to an integer data type must consist only of digits and an optional plus or minus sign (+ or -). Leading blanks are ignored. Expressions of data types char or varchar converted to money can also include an optional decimal point and leading dollar sign ($).