Error converting data type varchar to numeric where ISNUMERIC finds only numbers

I am writing some SQL to form the basis of views to pull data from a Microsoft SQL Server source into Azure SQL Database, and then the data would go to Power BI. The data was all presented in string format initially (not my data, not my monkeys, not my circus), and I wanted to correct the data types before the data got into Power BI.

I noted that one of the columns failed to convert VARCHAR to DECIMAL. The error message is below, and it’s usually fairly easy to sort:

Error converting data type varchar to numeric

Normally, I’d use ISNUMERIC to identify the rows that fail to have a value in that column that could be converted to a number. Then, I could identify the value, and then I could replace or exclude it, as required.

However, on this occasion, using ISNUMERIC failed to identify any columns as being non-numeric. ISNUMERIC returned all of the rows as TRUE, and that confused me. I knew that something was triggering the CONVERT instruction to go wrong.

parrot-1070624_1920
Confused? yes, me too. Credit: https://pixabay.com/en/users/lovelikeahurricane-720440/

I ran a quick query, ordering the column in ASCENDING order, while running the original offending query that failed. This showed that the query stopped at the value 9.45. I then ran another query that returned the rows, where the value was greater than 9.45, and ordered the results.

In this result set, the value came through as follows:

9.450000001e-05

Aha! This explained why SQL Server could convert the value to numeric, because of the scientific notation used when the values are very large or very small.

Now, I ran my query again, using a NOT LIKE (which I also do not like!)

WHERE [My Column Name] NOT LIKE ‘%e%’
Now, out of my large record set, I got one offending row with the scientific notation, out of millions of rows. At least I had something to work with now; I could remove the data, run an update, or work with the scientific notation.
I hope that helps someone!
Share the Post:

Related Posts

What Does IBM’s Acquisition of Confluent Mean for AI in Enterprises?

IBM’s $11 billion acquisition of Confluent represents a strategic shift in enterprise AI deployment, focusing on event-driven platforms for resilience and speed. Confluent’s streaming technology enhances data integration across hybrid environments, fostering robust AI ecosystems. This move positions IBM competitively against major cloud providers, emphasising that data infrastructure is just as important for AI scalability and reliability.

Read More
Image of robot with human team office workers.

Shadow AI: What Every Enterprise Needs to Know (Statistics, Risks & Solutions)

Discover why Shadow AI is reshaping the enterprise, often under the radar. Explore essential statistics, real-world risks, and proven solutions to manage Shadow AI, protect your data, and enable secure innovation in your organisation.

Read More

AI Resiliency in an AI-enabled world – protecting your AI investments

Organisations need to be AI resilient to protect and maximise their investments in AI. Here’s a roundup of how Commvault’s new Cloud Unity Platform is transforming enterprise resilience by unifying data security, cyber recovery, and identity protection to help you achieve AI resilience. Learn about key features, real-world benefits, and why this matters for your organisation.

Read More

Discover more from Jennifer Stirrup: AI Strategy, Data Consulting & BI Expert | Keynote Speaker

Subscribe now to keep reading and get access to the full archive.

Continue reading