Solved

How to find all values in a column which is not money

Posted on 2016-11-11
25
34 Views
Last Modified: 2016-11-11
Hi,

How to find all values in a column which is not money datatype
0
Comment
Question by:RIAS
  • 9
  • 8
  • 8
25 Comments
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883532
Try..

--

SELECT [col_names] FROM TABLENAME 
WHERE COLNAME NOT LIKE '%.%' AND COLNAME NOT LIKE '%.00%' 

--

Open in new window

0
 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883583
How to find all values in a column which is not money datatype
What's the column data type then?
0
 

Author Comment

by:RIAS
ID: 41883584
It is nvarchar(50)
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883586
Wondering why are you storing money in a nvarchar field.
So, how's those money values formatted in that column?
1
 

Author Comment

by:RIAS
ID: 41883587
Thats the point i ma changing the datatype but, need to know the data which is not in money format
0
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883588
Try..

--

CREATE TABLE a
(
	a VARCHAR(100)
)
GO

INSERT INTO a VALUES ('2.34'),('5.0'),('5'),('13.2'),('Pawan'),('13.2')
GO

SELECT * FROM a 
WHERE a NOT LIKE '%.%' AND a NOT LIKE '%.00%' 

--

Open in new window


Output
---------
a
5
Pawan
0
 

Author Comment

by:RIAS
ID: 41883589
Pawan,
 There is aproblem with you query its returning even
10900
0
 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883590
Thats the point i ma changing the datatype but, need to know the data which is not in money format
For help you I need to know how a money value is stored in that field. Can you provide a sample?
0
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883592
Hi Rias,
Have you tried the code I gave. <<Check out the example One>>

Regards,
Pawan
0
 

Author Comment

by:RIAS
ID: 41883594
Vitor,

Example:

NULL
$43,869.60
£10,000.00
£235,847.99
£266,941.14
£486,704.27
1, 029.000.00
1, 603, 571.10
1,000,000.00
1,055.00
1,066,069.80
1,100.00
1,209,454.44
1,250.00
1,277,877.27
1,328,837.00
1,436,880.00
1,457.50
0
 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883595
You should mark which ones are considered money or we just assume everything that has numbers are money?
0
 

Author Comment

by:RIAS
ID: 41883597
yes, we just assume everything that has numbers are money
0
 
LVL 28

Assisted Solution

by:Pawan Kumar
Pawan Kumar earned 250 total points
ID: 41883598
Try

[code]
--

CREATE TABLE a
(
	a VARCHAR(100)
)
GO

INSERT INTO a VALUES 
(NULL),
 ('$43,869.60'),
('£10,000.00'),
('£235,847.99'),
('£266,941.14'),
('£486,704.27'),
 ('1, 029.000.00'),
 ('1, 603, 571.10'),
 ('1,000,000.00'),
 ('1,055.00'),
 ('1,066,069.80'),
 ('1,100.00'),
 ('1,209,454.44'),
 ('1,250.00'),
 ('1,277,877.27'),
 ('1,328,837.00'),
 ('1,436,880.00'),
 ('1,457.50' )

GO

SELECT * FROM a 
WHERE a NOT LIKE '%.%' OR a IS NULL 

--

Open in new window


Output
---------
a
NULL

[/code]
0
 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883600
Ok, then this should work:
SELECT *
FROM TableName
WHERE ISNUMERIC(ColumnName) = 1

Open in new window

0
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883602
Hi Rias,

Any luck ?
0
 
LVL 47

Accepted Solution

by:
Vitor Montalvão earned 250 total points
ID: 41883603
Looks like you want the opposite (not money). So just change the filter:
SELECT *
FROM TableName
WHERE ISNUMERIC(ColumnName) = 0

Open in new window

0
 

Author Closing Comment

by:RIAS
ID: 41883604
Thanks!
0
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883606
@Rias - You cannot accept Incorrect solution. His both solutions are giving incorrect outputs. Please note that these solution will be referred by people in future.

Both see below -


SELECT *
FROM a
WHERE ISNUMERIC(a) = 0

O/p

NULL
1, 029.000.00
1, 603, 571.10


SELECT *
FROM a
WHERE ISNUMERIC(a) = 1

Output
------

$43,869.60
£10,000.00
£235,847.99
£266,941.14
£486,704.27
1,000,000.00
1,055.00
1,066,069.80
1,100.00
1,209,454.44
1,250.00
1,277,877.27
1,328,837.00
1,436,880.00
1,457.50
0
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883612
Hi Rias,

Can you confirm whether Vitor Solution worked for you and how ?

Thank You in advance.

Regards,
Pawan
0
 

Author Comment

by:RIAS
ID: 41883617
Pawan,
Just give sometime.Will get back on this .
0
 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883622
Those aren't numbers:
1, 029.000.00 --> Have an extra space and 3 dots
1, 603, 571.10 --> Have an extra space

If the author want to transform those values into a money field will fail.
So Pawan's solution won't work if let these values stays in the table.

Capture.PNG
3
 
LVL 28

Expert Comment

by:Pawan Kumar
ID: 41883628
Okies. Cool. !!
0
 

Author Comment

by:RIAS
ID: 41883728
Thanks Vitor!!!
0
 
LVL 47

Expert Comment

by:Vitor Montalvão
ID: 41883744
Your welcome, RIAS.
Following Pawan's comment "@Rias - You cannot accept Incorrect solution." you should unaccept his solution. A couple of days ago you also gave him points for his "effort" (copying my solution and change a value) and that was also an incorrect solution.
I won't be picky with this (will let a moderator to decide what to do) but you should be more careful with the answers you're accepting. Sometimes is good to perform more tests before accepting immediately an answer. We aren't on hurry here. :)
Cheers
3
 

Author Comment

by:RIAS
ID: 41883745
Vitor,

 Went on some other task so could not test thoroughly but,will take a note of this.

Cheers
0

Featured Post

Enterprise Mobility and BYOD For Dummies

Like “For Dummies” books, you can read this in whatever order you choose and learn about mobility and BYOD; and how to put a competitive mobile infrastructure in place. Developed for SMBs and large enterprises alike, you will find helpful use cases, planning, and implementation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
SSRS 2013 - Overlapping reports 2 19
Need some help to cast ntext to nvarchar SQL 2000 7 31
sql select record as one long string 21 22
Sql Query 6 50
Why is this different from all of the other step by step guides?  Because I make a living as a DBA and not as a writer and I lived through this experience. Defining the name: When I talk to people they say different names on this subject stuff l…
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.
Viewers will learn how to use the SELECT statement in SQL to return specific rows and columns, with various degrees of sorting and limits in place.

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question