## Remove decimal values only if all the decimal values are 0

I need to select a column removing all the decimal values if all the values are zero.

Here is what the input table looks like, MYCOLUMN is a numeric(18,2) type field:

+--------+ |MYCOLUMN| +--------+ |1.00 | +--------+ |1.00 | +--------+ |1.50 | +--------+ |2.00 | +--------+ |2.60 | +--------+

And here is what I'm trying to achieve from my select:

+--------+ |MYRESULT| +--------+ |1 | +--------+ |1 | +--------+ |1.50 | +--------+ |2 | +--------+ |2.60 | +--------+

I tried with a simple CASE statement, but unfortunately it does not seem to work.

SELECT CASE WHEN MYCOLUMN % 1 <> 0 THEN MYCOLUMN ELSE CONVERT(INT, MYCOLUMN) END as MYRESULT

The values all remains in the decimal format.

You can try this below option. But as you can not mix data types in a single column, you can only take this option if STRING output is acceptable in your desired output.

WITH your_table (MYCOLUMN) AS( SELECT 1.00 UNION ALL SELECT 2.25 ) SELECT CASE WHEN FLOOR(MYCOLUMN) = MYCOLUMN THEN CAST(FLOOR(MYCOLUMN) AS VARCHAR) ELSE CAST(MYCOLUMN AS VARCHAR) END FROM your_table

**Format a number with optional decimal places in Excel,** you still need to round/truncate the "extra" decimal points using a formula. However, this is a simple formula of =ROUND(<value>,<desired decimal places>) positive number format;negative number format;zero format;text format Change the range in the "Applies to" field to cover the range you want covered. All done. You will not be able to manually grab the slider control and make adjustments but you will be able to scrub through the values in the expression control and only end up with whole numbers. If you want to add a % sign to the slider control you can't do that, but if you want to use the slider to drive a text layer then francoisg32545302 has given

To represent this in different formats, you need to convert to string. Hence, you might as well do:

select replace(cast(col as varchar(255)), '.00', '')

**How to remove all zeros after decimal in Excel?,** If you have a list of decimal numbers which contain zeros after the decimal point, now, you Remove all trailing zeros after decimal with Format Cell command Number tab, then click Custom option from the Category pane, and then enter 0. SELECT CAST(CASE WHEN MYCOLUMN % 1 <> 0 THEN MYCOLUMN ELSE MYCOLUMN END AS INT) as MYRESULT The difference, the first one will cast the MYCOLUMN to int, then it will return the result as numeric (base type). While the second one will read the values as numeric (base type), then get the result, after that it'll cast that result to int.

You almost got it, what you need is to cast the result and not the MYCOLUMN itself.

So, this :

SELECT CASE WHEN MYCOLUMN % 1 <> 0 THEN MYCOLUMN ELSE CONVERT(INT, MYCOLUMN) END as MYRESULT

Should be this :

SELECT CAST(CASE WHEN MYCOLUMN % 1 <> 0 THEN MYCOLUMN ELSE MYCOLUMN END AS INT) as MYRESULT

The difference, the first one will cast the MYCOLUMN to int, then it will return the result as numeric (base type). While the second one will read the values as numeric (base type), then get the result, after that it'll cast that result to int. So, you will need to cast the result to int instead, same as we did in the second one.

**How to remove digits after decimal in Excel?,** Sometimes you need to remove all digits after decimal to make numbers to the value you will remove digits after decimal, enter the formula =TRUNC(E2,0) into a By the way, If you have Kutools for Excel installed, you can apply its To Actual feature to quickly convert all formulas to their formula results with only one click. If you want to remove decimal points and rounding to nearest integet values we can pass digit info as x.0-0. (x is minimum number of digits before decimal) //decimal_value: number = 5.123456789; Without decimal {{decimal_value | number:'1.0-0'}} // 5 //decimal_value: number = 5.523456789; {{decimal_value | number:'1.0-0'}} //6

**How to remove all zeros after decimals in Excel (e.g. 45.00 becomes ,** If you want numbers with decimal values to display decimal places but whole How can I remove all zeros after decimals in Excel (e.g. 45.00 becomes 45)?. aDdw to display decimal places but whole numbers to show 0 decimal places, you can use format with 2 decimal places, but only where there are decimal values. Round Off Decimal Values Using the ROUND Function The ROUND function rounds numbers to a certain number of decimal places that you configure. If the next digit to the right is between zero and four, it rounds down. So, for example, if you were rounding down to two decimal places, 8.532 would become 8.53.

**Conditionally Displaying Decimal Places in Excel: Part 3 ,** You won't notice this with numbers greater than zero, TRUNC and INT will TRUNC and INT only work with greater than 1 or less than -1, so the Enter a range of decimal values in cells A1:A4, such as 0.87, 0.8325, 0.7252, and 0.91. formatting rule to show two decimal places for all other numbers. (1) In the formula =INT (E2), E2 is the cell that you will remove digits after decimal. (2) INT function can also remain certain places of digits after decimal. For example, to remove all digits except the first one after decimal, you can apply the formula =INT (E2*10)/10.

**number_format - Manual,** If all four parameters are given, number will be formatted with decimals decimals, dec_point instead of a dot (". Only the first byte of each separator was used in older versions. is equal to -0 (the content of $tmp[0] which was interpretet as numeric value). Remove '0' from end of string and set $afterPoint=$afterPoint-1 Let’s say that your goal is to round the values to 2 decimals places across all the columns that contain numeric values (i.e., the Values_1 and Values_2 columns). You can then use the fourth method to round the values for the entire DataFrame (for all the columns that contain numeric values): df.round(decimals=number of decimal places needed)