# Filter by attribute to show only records with whole numbers

Is there a way to show points that only contain whole numbers in a column (eg. 009, 010, 011 and NOT 9,1; 9,2; 9,3...) in ArcGIS 10?

• Are you doing a select by attribute in ArcMap? if so which version of ArcGIS desktop? You need to give us more details about your data and the software that you are using. – Devdatta Tengshe Mar 6 '13 at 9:54
• Is the data in the km column stored as a string or a number? – user3461 Mar 6 '13 at 11:24

## 4 Answers

This assumes the km column stores numbers, not strings.

Open the table.

Add a new column and name it whatever you want, I'll use wholenum in this example.

Right-click the wholenum column and choose Field Calculator.

Set the Parser to Python and put a check in Show Codeblock.

Enter this formula in the Pre-Logic Script Code field:

``````x = 0
if [km] MOD 1 = 0 then
x = 1
endif
``````

Put x in the km= field.

Click OK to close the Field Calculator.

Set this Definition Query on the layer: `wholenum = 1`.

Now it will only display points with whole number values. You could take similar steps to show every 5 km or 10 km point, by using `MOD 5` and `MOD 10` respectively, to show fewer points at even smaller scales.

I have just had a similar problem and used this work around.

Open the layer properties and select Definition query and use the expression below.

``````KM NOT LIKE '%.%'
``````

This will remove all rows with a `.` in the field. As long as the kilometer points aren't whole numbers like 1.0 or 2.0 etc. this should work.

Please try this (if data in the km column is stored as a number):

``````[km] mod 1 = 0
``````

The modulo operation finds the remainder of division of one number by another.

If field is numeric, create the following definition query:

``````ROUND("field_name",0) = "field_name"
``````