Solved
Contributor
Posts: 64

# Where Character Length = X

Quick question all,

I need Proc Sql syntax for a where statement bring back only records with a string length of 10.

I tried ths and it didn't work:

``````where  a.date_created >=02/20/2018
and length(account_number = 10) ``````

Thanks for any suggestions!

Accepted Solutions
Solution
‎03-12-2018 05:36 PM
Super User
Posts: 2,061

## Re: Where Character Length = X

``````where  a.date_created >=02/20/2018
and length(account_number) = 10``````

All Replies
Solution
‎03-12-2018 05:36 PM
Super User
Posts: 2,061

## Re: Where Character Length = X

``````where  a.date_created >=02/20/2018
and length(account_number) = 10``````
Contributor
Posts: 64

## Re: Where Character Length = X

Strange! Your's matches mine so maybe there was a minor difference between what I posted and what I actually ran. This works. Thanks!

Super User
Posts: 6,934

## Re: Where Character Length = X

In addition to the suggestion from @novinosrin that moves one of the closing parentheses:

• A WHERE statement requires a semicolon, and
• 02/20/2018 is the wrong way to refer to a date.  This actually means 2 divided by 20, divided by 2018.  Instead of 02/20/2018:

'20Feb2018'd

Super User
Posts: 2,061

## Re: Where Character Length = X

hi @Dogo23 to help you clarify a bit more, see the below demo

``````data h;
input var \$10.;
datalines;
9999999999
99999
9999999999
8888888888
777777
888
;

data w;
set h;
length=length(var);
length2=length(var)=10;/*your were trying to compute the length of binary result which will always result in 1*/
if length(var=10) then flag=1;/*your were trying to compute the length of binary result*/
run;``````

Your check was a binary check nested before the length function computes it's work. The nested binary will result in 1 or 0 for values that is 10 and "Not aka 0" for otherwise. The commented section should help i think. Thank you.

☑ This topic is solved.