Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hi everyone,
I'm trying to clean phone numbers by doing two things:
purgechar([Phone number], ')(-') as [Phone number]
Any help appreciated, as always. Thanks!
R.
Area code | Phone number | |
---|---|---|
1 | 416 | 1234567 |
2 | 4161234567 | |
3 | (416)1234567 |
Sample script
Table:
LOAD Sno,
If(Len(Purgechar([Phone number], ')(-')) = 10, Right(Purgechar([Phone number], ')(-'), 7), Purgechar([Phone number], ')(-')) as [Phone number],
If(Len(Trim([Area code])) > 0, [Area code], If(Len(Purgechar([Phone number], ')(-')) = 10, Left(Purgechar([Phone number], ')(-'), 3))) as [Area code];
LOAD * INLINE [
Sno, Area code, Phone number
1, 416, 1234567
2, , 4161234567
3, , (416)1234567
];
Which is your actual data row.
In row no 2 how you differentiate 416 is the code and 1234567 is the phone number.
May be like this
If(Len(Purgechar([Phone number], ')(-')) = 10, Right(Purgechar([Phone number], ')(-'), 7), Purgechar([Phone number], ')(-')) as [Phone number]
And this for Area Code...
If(Len(Trim([Area Code])) > 0, [Area Code], If(Len(Purgechar([Phone number], ')(-')) = 10, Left(Purgechar([Phone number], ')(-'), 3))) as [Area Code]
Sample script
Table:
LOAD Sno,
If(Len(Purgechar([Phone number], ')(-')) = 10, Right(Purgechar([Phone number], ')(-'), 7), Purgechar([Phone number], ')(-')) as [Phone number],
If(Len(Trim([Area code])) > 0, [Area code], If(Len(Purgechar([Phone number], ')(-')) = 10, Left(Purgechar([Phone number], ')(-'), 3))) as [Area code];
LOAD * INLINE [
Sno, Area code, Phone number
1, 416, 1234567
2, , 4161234567
3, , (416)1234567
];
Some of the questions
1. What is the length of the Phone no. are they fix.
2. Open brackets close and open are in fix place
LOAD *,
PurgeChar( SubField([Phone number],')',1),'(') as [Area Code],
SubField([Phone number],')',-1) as [New Phone];
LOAD * Inline
[
Area code, Phone number
1 , 416 1234567
2 , 4161234567
3 , (416)1234567
];
If they are in fix Area Code = 3 and Number = 7
Then
Data:
LOAD *,
PurgeChar( SubField([Phone number],')',1),'(') as [Area Code],
SubField([Phone number],')',-1) as [New Phone];
LOAD * Inline
[
Area code, Phone number
1 , 416 1234567
2 , 4161234567
3 , (416)1234567
];
NoConcatenate
Final:
LOAD
If(len([Area Code]) = 3, [Area Code]) as [Area Code],
if(len([New Phone]) = 7,[New Phone]) as [New Phone]
Resident Data;
DROP Table Data;
Apologies for the extreme delay on replying to this, but this code works perfect. Thanks so much!
R.