?
Solved

SQL DISTINCT ON TEXT FIELD CAUSES ERROR

Posted on 2001-06-20
4
Medium Priority
?
2,019 Views
Last Modified: 2008-03-04
I have a query that is returning dups.  I tried using DISTINCT but it wont allow it because I do a select * and some of the fields are TEXT fields.  How can I work around this?  I have to have those in my query Thanks.
0
Comment
Question by:bostonroxx
  • 2
4 Comments
 
LVL 3

Expert Comment

by:arun04
ID: 6213303
Use convert function on columns of TEXT type and convert them to VARCHAR, it will truncate some data but it works fine
0
 

Accepted Solution

by:
meetyg earned 150 total points
ID: 6214254
The Distinct feature doesn't work on TEXT,IMAGE, NTEXT or BINARY data columns.
If the text isn't more than 8kb of data (on SQL 2000, or 255 bytes if your using SQL 6.5 or 7), you can convert as mentioned. If the text field is bigger than that, data maybe lost, or it moght not work at all.

Heres how to do the convert:
------------------------------------------------------
select Distinct Convert(text_column_name,varchar(8000)) from mytable_tbl
------------------------------------------------------

notice that I chose to convert to varchar(8000) because 8000 bytes is the maximum amount of data that varchar can hold in SQL server 2000.

If i'm not mistaken, SQL server 6.5 and 7 can only handle 255 bytes of data in the varchar datatype.

Either way, you cannot explicitly use distinct on TEXT columns.

Goodluck.

0
 

Author Comment

by:bostonroxx
ID: 6214569
Should I just change this to Varchar(2000)?
0
 

Expert Comment

by:meetyg
ID: 6218835
Yes, if 2000 characters is enough, you can convert to varchar(2000)
0

Featured Post

Granular recovery for Microsoft Exchange

With Veeam Explorer for Microsoft Exchange you can choose the Exchange Servers and restore points you’re interested in, and Veeam Explorer will present the contents of those mailbox stores for browsing, searching and exporting.

Question has a verified solution.

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

This article shows gives you an overview on SQL Server 2016 row level security. You will also get to know the usages of row-level-security and how it works
In the first part of this tutorial we will cover the prerequisites for installing SQL Server vNext on Linux.
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.
Via a live example, show how to shrink a transaction log file down to a reasonable size.
Suggested Courses

850 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