Technical Article

TextToDecimal

SUMMARY:This UDF script takes a text value(nvarchar) and returns a decimal(18,6) number. If the text value can't be interpreted as numeric, the UDF returns NULL.-----------------------------------------------USAGE: SET @MyDecimal = dbo.TextToDecimal('-$123,456.73')@MyDecimal will now be -123456.730000SET @MyDecimal = dbo.TextToDecimal('-$123,4560.73') --bad number format@MyDecimal will now be NULL------------------------------------------------------DESCRIPTION:The ISNUMERIC function incorrectly returns 1 (True) for many non-numeric text values. Even […]

5 (1)

You rated this post out of 5. Change rating

2005-11-02 (first published: )

185 reads

Blogs

6 Can’t-Miss Basic SQL Courses to Learn in 2024: Your Fast Track to Data Mastery

By

Ready to dive into the world of SQL? Whether you're dreaming of a lucrative...

Data-driven vs. Data-informed: Let’s Acknowledge the Truth

By

This comic was retweeted into my timeline on Twitter (I refuse to call it...

Writing Parquet Files – #SQLNewBlogger

By

Recently I’ve been looking at archiving some data at SQL Saturday, possibly querying it,...

Read the latest Blogs

Forums

Can you connect Power Apps to SQL Server if you work in the government?

By JJ B

My agency has been using the combo of on-premises SQL Server for the back...

Unable to connect to SQL 2019 using Pyodbc

By yyang5823

Development Environment I am learning how to use pyodbc and accessing database in SQL...

Multiple deadlocks occurring with contentious code

By zoggling

We are seeing multiple frequent deadlocks occurring with the following extract of code, which...

Visit the forum

Question of the Day

Multiple Query Trace Flags

I want to enable two trace flags, 4199 and 4137, for a single query. How should I do this:

-- A
SELECT
  a.AddressID
, a.AddressLine1
, a.AddressLine2
, a.City
, a.StateProvinceID
, a.PostalCode
, p.FirstName
, p.LastName
FROM
  Person.Address a
  INNER JOIN person.Person AS p
    ON p.rowguid = a.rowguid
WHERE
  City           = 'SEATTLE'
  AND PostalCode = 98104
OPTION (QUERYTRACEON 4199, 4137);

-- B
SELECT
  a.AddressID
, a.AddressLine1
, a.AddressLine2
, a.City
, a.StateProvinceID
, a.PostalCode
, p.FirstName
, p.LastName
FROM
  Person.Address a
  INNER JOIN person.Person AS p
    ON p.rowguid = a.rowguid
WHERE
  City           = 'SEATTLE'
  AND PostalCode = 98104
OPTION (QUERYTRACEON 4199, QUERYTRACEON 4137);

-- C
SELECT
  a.AddressID
, a.AddressLine1
, a.AddressLine2
, a.City
, a.StateProvinceID
, a.PostalCode
, p.FirstName
, p.LastName
FROM
  Person.Address a
  INNER JOIN person.Person AS p
    ON p.rowguid = a.rowguid
WHERE
  City           = 'SEATTLE'
  AND PostalCode = 98104
OPTION (QUERYTRACEON 4199), (QUERYTRACEON 4137);

See possible answers