Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
JeffS23
Posting Yak Master
212 Posts |
Posted - 2008-02-26 : 13:42:37
|
| I am currently pulling the following field in my query:isnull(dbo.FormatName(refdr.Prefix, refdr.First, refdr.Middle, refdr.Last, refdr.Suffix),'')AS Ref_DoctorNameWhen the field is NULL, its returning a "," value instead of a NULL as I need. Any suggestions on a better format? |
|
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2008-02-26 : 13:56:40
|
| I belive this is a problem inside your function: dbo.FormatNameIf you post that code we can help you.Be One with the OptimizerTG |
 |
|
|
JeffS23
Posting Yak Master
212 Posts |
Posted - 2008-02-26 : 13:58:06
|
| SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOALTER FUNCTION FormatName (@pPrefix VARCHAR(10), @pFirst VARCHAR(30), @pMiddle VARCHAR(30), @pLast VARCHAR(30), @pSuffix VARCHAR(20) )RETURNS VARCHAR(256)ASBEGINDECLARE @pf VARCHAR(10), @fn VARCHAR(30), @mi VARCHAR(30), @ln VARCHAR(30), @sf VARCHAR(20)SET @pf = ISNULL(@pPrefix, '')SET @fn = ISNULL(@pFirst, '')SET @mi = ISNULL(@pMiddle, '')SET @ln = ISNULL(@pLast, '')SET @sf = ISNULL(@pSuffix, '')IF LEN(@pf) < 1 SET @pf = NULLIF LEN(@fn) < 1 SET @fn = NULLIF LEN(@mi) < 1 SET @mi = NULLIF LEN(@ln) < 1 SET @ln = NULLIF LEN(@sf) < 1 SET @sf = NULL RETURN RTRIM ( LTRIM ( ISNULL(@ln,'') + CASE WHEN @sf IS NOT NULL THEN ' ' + @sf ELSE '' END + ', ' + CASE WHEN @pf IS NOT NULL THEN @pf + ' ' ELSE '' END + CASE WHEN @fn IS NOT NULL THEN @fn + ' ' ELSE '' END + LTRIM( ISNULL(@mi,'') ) ) )ENDGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2008-02-26 : 14:14:44
|
quote: Originally posted by JeffS23 SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GOALTER FUNCTION FormatName (@pPrefix VARCHAR(10), @pFirst VARCHAR(30), @pMiddle VARCHAR(30), @pLast VARCHAR(30), @pSuffix VARCHAR(20) )RETURNS VARCHAR(256)ASBEGINDECLARE @pf VARCHAR(10), @fn VARCHAR(30), @mi VARCHAR(30), @ln VARCHAR(30), @sf VARCHAR(20)SET @pf = ISNULL(@pPrefix, '')SET @fn = ISNULL(@pFirst, '')SET @mi = ISNULL(@pMiddle, '')SET @ln = ISNULL(@pLast, '')SET @sf = ISNULL(@pSuffix, '')IF LEN(@pf) < 1 SET @pf = NULLIF LEN(@fn) < 1 SET @fn = NULLIF LEN(@mi) < 1 SET @mi = NULLIF LEN(@ln) < 1 SET @ln = NULLIF LEN(@sf) < 1 SET @sf = NULL RETURN RTRIM ( LTRIM ( ISNULL(@ln,'') + CASE WHEN @sf IS NOT NULL THEN ' ' + @sf ELSE '' END + ', ' + CASE WHEN @pf IS NOT NULL THEN @pf + ' ' ELSE '' END + CASE WHEN @fn IS NOT NULL THEN @fn + ' ' ELSE '' END + LTRIM( ISNULL(@mi,'') ) ) )ENDGOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO
what is the "," for? i think its the culprit. When all fields are NULL its returning this "," alone. |
 |
|
|
JeffS23
Posting Yak Master
212 Posts |
Posted - 2008-02-26 : 14:22:52
|
| That was the culprit. Thanks a million. |
 |
|
|
TG
Master Smack Fu Yak Hacker
6065 Posts |
Posted - 2008-02-26 : 14:26:09
|
| Are you sure? Don't you need that to seperate (Last, First) when they exist?Be One with the OptimizerTG |
 |
|
|
|
|
|
|
|