November 14, 2014 at 9:31 am
hi
i need to extract the letters of a postcode up until the first occurrence of a number
eg
BT67 8kT = BT
B68 4HY = B
anyone any tips for me?
mal
November 14, 2014 at 9:45 am
You need a combination of LEFT with PATINDEX.
SELECT LEFT( String, PATINDEX('%[0-9]%', String) - 1)
FROM (VALUES('BT67 8kT'),('B68 4HY'))x(String)
November 14, 2014 at 9:51 am
hi Luis
apols, i am not sure i am following that
if i am reading the postcode field from table customer, how would you structure your query?
thanks for helping
mal
November 14, 2014 at 9:57 am
Change the Table Value Constructor to use your table and change the column to your column.
I'm using the exact name so you can search for the items yourself and be able to learn more.
November 14, 2014 at 10:22 am
thanks Luis ,and you are just right making me research what i am doing 😉
SELECT Customer,ShipPostalCode,left(ShipPostalCode, ((PATINDEX('%[0-9]%', ShipPostalCode)-1))
FROM ArCustomer
November 14, 2014 at 5:15 pm
dopydb (11/14/2014)
thanks Luis ,and you are just right making me research what i am doing 😉SELECT Customer,ShipPostalCode,left(ShipPostalCode, ((PATINDEX('%[0-9]%', ShipPostalCode)-1))
FROM ArCustomer
what do you want to do when you come across an invalid postcode that has no numbers? Error out or handle it?
MM
select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);
November 15, 2014 at 3:44 am
Hi dd
All postcodes 'should' have a number , but I guess better to have a solution that's a bit more robust. What would you do?
Mal
November 15, 2014 at 4:51 am
dopydb (11/14/2014)
thanks Luis ,and you are just right making me research what i am doing 😉SELECT Customer,ShipPostalCode,left(ShipPostalCode, ((PATINDEX('%[0-9]%', ShipPostalCode)-1))
FROM ArCustomer
SELECT Customer,ShipPostalCode,left(ShipPostalCode, ((PATINDEX('%[0-9]%', ShipPostalCode+'1')-1))
FROM ArCustomer
I would just append a number such as '1' to the ShipPostalCode to ensure patindex always returns a value (unless ShipPostalCode is null)
MM
select geometry::STGeomFromWKB(0x0106000000020000000103000000010000000B0000001000000000000840000000000000003DD8CCCCCCCCCC0840000000000000003DD8CCCCCCCCCC08408014AE47E17AFC3F040000000000104000CDCCCCCCCCEC3F9C999999999913408014AE47E17AFC3F9C99999999991340000000000000003D0000000000001440000000000000003D000000000000144000000000000000400400000000001040000000000000F03F100000000000084000000000000000401000000000000840000000000000003D0103000000010000000B000000000000000000143D000000000000003D009E99999999B93F000000000000003D009E99999999B93F8014AE47E17AFC3F400000000000F03F00CDCCCCCCCCEC3FA06666666666FE3F8014AE47E17AFC3FA06666666666FE3F000000000000003D1800000000000040000000000000003D18000000000000400000000000000040400000000000F03F000000000000F03F000000000000143D0000000000000040000000000000143D000000000000003D, 0);
Viewing 8 posts - 1 through 7 (of 7 total)
You must be logged in to reply to this topic. Login to reply