SQL: Verify valid number (999999999.99 or 999999999

I need to return all the values  where the NumberValueField (its a text in the table) that is not numeric and in the following format

999999999.99 or 999999999

so there is a limit to how many spaces to the left of the decimal (9) and IF (doesn't have to have one) it is a decimal number it should only have to spaces.
Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
``````Where Trim(NumberValueField) Like "#########.##" or Trim(NumberValueField) Like "#########"
``````
Author Commented:
I don't think that is correct

I need to return records if one of the follow conditions are not met (invalid values)

1) the numbers to be numeric
2) if they have a decimal place to only return 2 places to the right of the decimal (ex 343.423 = invalid)
3) to have UP TO (can be less) places to the left of the decimal

Invalid Values

9999999999 (to many spaces to the left of the decimal)
99.999  (to many spaces to the right of the decimal)
XYZ (not numeric)

Valid Values

999
99.99
Commented:
``````Where
Not (
(IsNumeric(NumberValueField) )
AND
cdbl(NumberValueField)<999999999.99
AND
(Int(NumberValueField) Like String(Len(Int(NumberValueField)),"#") )
AND
((NumberValueField-Int(NumberValueField) Like "##" ) or (NumberValueField-Int(NumberValueField) = 0))
)
``````

Experts Exchange Solution brought to you by