MS SQL dealing with duplicate columns in rows?

MS SQL dealing with duplicate columns in rows?

am 21.08.2007 11:04:21 von Yas

Hello,

Suppose I have the following table...

name employeeId email
--------------------------------------------
Tom 12345 tom@localhost.com
Hary 54321
Hary 54321 hary@localhost.com


I only want unique employeeIds return. If I use Distinct it will still
return all of the above as the email is different/missing. Is there a
way to query in SQL so that only distinct employeeId is returned? no
duplicates.

I wouuld like to say WHERE no blank fields are present to get the
right row to return.


Many thanks

Yas

Re: MS SQL dealing with duplicate columns in rows?

am 21.08.2007 11:20:45 von Stephen

On Aug 21, 10:04 am, Yas wrote:
> Hello,
>
> Suppose I have the following table...
>
> name employeeId email
> --------------------------------------------
> Tom 12345 t...@localhost.com
> Hary 54321
> Hary 54321 h...@localhost.com
>
> I only want unique employeeIds return. If I use Distinct it will still
> return all of the above as the email is different/missing. Is there a
> way to query in SQL so that only distinct employeeId is returned? no
> duplicates.
>
> I wouuld like to say WHERE no blank fields are present to get the
> right row to return.
>
> Many thanks
>
> Yas

Which row for Hary do you want to be returned? The one without an
email address or the one with the email address?

Re: MS SQL dealing with duplicate columns in rows?

am 21.08.2007 15:05:09 von Yas

On 21 Aug, 11:20, stephen wrote:
> On Aug 21, 10:04 am, Yas wrote:
>
>
>
> > Hello,
>
> > Suppose I have the following table...
>
> > name employeeId email
> > --------------------------------------------
> > Tom 12345 t...@localhost.com
> > Hary 54321
> > Hary 54321 h...@localhost.com
>
> > I only want unique employeeIds return. If I use Distinct it will still
> > return all of the above as the email is different/missing. Is there a
> > way to query in SQL so that only distinct employeeId is returned? no
> > duplicates.
>
> > I wouuld like to say WHERE no blank fields are present to get the
> > right row to return.
>
> > Many thanks
>
> > Yas
>
> Which row for Hary do you want to be returned? The one without an
> email address or the one with the email address?

basically 1 that doesn't have any fields missing....

cheers

Re: MS SQL dealing with duplicate columns in rows?

am 21.08.2007 15:47:49 von Luuk

"Yas" schreef in bericht
news:1187701509.682453.306820@o80g2000hse.googlegroups.com.. .
> On 21 Aug, 11:20, stephen wrote:
>> On Aug 21, 10:04 am, Yas wrote:
>>
>>
>>
>> > Hello,
>>
>> > Suppose I have the following table...
>>
>> > name employeeId email
>> > --------------------------------------------
>> > Tom 12345 t...@localhost.com
>> > Hary 54321
>> > Hary 54321 h...@localhost.com
>>
>> > I only want unique employeeIds return. If I use Distinct it will still
>> > return all of the above as the email is different/missing. Is there a
>> > way to query in SQL so that only distinct employeeId is returned? no
>> > duplicates.
>>
>> > I wouuld like to say WHERE no blank fields are present to get the
>> > right row to return.
>>
>> > Many thanks
>>
>> > Yas
>>
>> Which row for Hary do you want to be returned? The one without an
>> email address or the one with the email address?
>
> basically 1 that doesn't have any fields missing....
>
> cheers
>

SELECT * from table where name<>"" and employeeId<>0 and email<>"";

but why would you have this second row "Hary 54321 " in your
table anyway?

would it not be better to create unique index on emplyeeId ?

Re: MS SQL dealing with duplicate columns in rows?

am 21.08.2007 20:40:40 von David Portas

"Yas" wrote in message
news:1187701509.682453.306820@o80g2000hse.googlegroups.com.. .
> On 21 Aug, 11:20, stephen wrote:
>> On Aug 21, 10:04 am, Yas wrote:
>>
>>
>>
>> > Hello,
>>
>> > Suppose I have the following table...
>>
>> > name employeeId email
>> > --------------------------------------------
>> > Tom 12345 t...@localhost.com
>> > Hary 54321
>> > Hary 54321 h...@localhost.com
>>
>> > I only want unique employeeIds return. If I use Distinct it will still
>> > return all of the above as the email is different/missing. Is there a
>> > way to query in SQL so that only distinct employeeId is returned? no
>> > duplicates.
>>
>> > I wouuld like to say WHERE no blank fields are present to get the
>> > right row to return.
>>
>> > Many thanks
>>
>> > Yas
>>
>> Which row for Hary do you want to be returned? The one without an
>> email address or the one with the email address?
>
> basically 1 that doesn't have any fields missing....
>
> cheers
>

What is the key of your table? If you don't have a key then you need to fix
the design before you can expect a reasonable solution in SQL.

--
David Portas, SQL Server MVP

Whenever possible please post enough code to reproduce your problem.
Including CREATE TABLE and INSERT statements usually helps.
State what version of SQL Server you are using and specify the content
of any error messages.

SQL Server Books Online:
http://msdn2.microsoft.com/library/ms130214(en-US,SQL.90).as px
--

Re: MS SQL dealing with duplicate columns in rows?

am 21.08.2007 23:20:26 von Martijn Tonies

> >> > Hello,
> >>
> >> > Suppose I have the following table...
> >>
> >> > name employeeId email
> >> > --------------------------------------------
> >> > Tom 12345 t...@localhost.com
> >> > Hary 54321
> >> > Hary 54321 h...@localhost.com
> >>
> >> > I only want unique employeeIds return. If I use Distinct it will
still
> >> > return all of the above as the email is different/missing. Is there a
> >> > way to query in SQL so that only distinct employeeId is returned? no
> >> > duplicates.
> >>
> >> > I wouuld like to say WHERE no blank fields are present to get the
> >> > right row to return.
> >>
> >> > Many thanks
> >>
> >> > Yas
> >>
> >> Which row for Hary do you want to be returned? The one without an
> >> email address or the one with the email address?
> >
> > basically 1 that doesn't have any fields missing....
> >
> > cheers
> >
>
> SELECT * from table where name<>"" and employeeId<>0 and email<>"";

Just a note:

Please, no double quotes for string constants, use single quotes.

Double quotes are reserved for "delimited identifiers" as defined by the
SQL Standard and supported by MS SQL Server.


--
Martijn Tonies
Database Workbench - tool for InterBase, Firebird, MySQL, NexusDB, Oracle &
MS SQL Server
Upscene Productions
http://www.upscene.com
My thoughts:
http://blog.upscene.com/martijn/
Database development questions? Check the forum!
http://www.databasedevelopmentforum.com

Re: MS SQL dealing with duplicate columns in rows?

am 22.08.2007 09:13:52 von Luuk

>>
>> SELECT * from table where name<>"" and employeeId<>0 and email<>"";
>
> Just a note:
>
> Please, no double quotes for string constants, use single quotes.
>
> Double quotes are reserved for "delimited identifiers" as defined by the
> SQL Standard and supported by MS SQL Server.
>

I tend to forget those things, as its different in every programming
evironment i use....
some of the don't care, some use double quotes, and some use single
quotes...

thanks anyway for this reminder....