I came across with a new issue related to the legacy system. The situation is that, I have a varchar column in a table having numeric data with the currency and I need to segregate the numeric data and currency symbol. I spent sometime to figure it out and finally did it.
Before proceeding with the solution, let me create a sample to demonstrate the issue.
USE tempdb GO CREATE TABLE tbl_sample ( [ID] INT, [Curreny] VARCHAR(10) ) GO INSERT INTO tbl_sample VALUES (1,'Β£ 12.95') INSERT INTO tbl_sample VALUES (2,'$ 20.38') INSERT INTO tbl_sample VALUES (3,'Rs176.34') INSERT INTO tbl_sample VALUES (4,'β¬58') INSERT INTO tbl_sample VALUES (5,'Β₯ 33.3') INSERT INTO tbl_sample VALUES (6,'97800') GO SELECT * FROM tbl_sample GO --OUTPUT
Now, lets segregate the numbers and symbols. Given below is the solution.
USE tempdb
GO
SELECT
[ID]
, [Curreny]
, LEFT([Curreny],PATINDEX('%[0-9]%',[Curreny])-1)
AS [Currency Symbol]
, SUBSTRING([Curreny],PATINDEX('%[0-9]%',[Curreny]),LEN([Curreny]))
AS [Numbers]
FROM tbl_sample
--OUTPUT


awesome article imran π but i have used to this trick