Home All Groups Group Topic Archive Search About

Considering blank spaces

Author
30 Jun 2006 7:26 AM
checcouno
I need to make a function for coding string in which i make difference
between strings that are identical except from final blank spaces. In SQL 200
exists an option (collate set or something else) that can make SQL
distinguish betwene two string like these:
'MYSTRING1'
'MTSTRING1    ' 

Thanks

Author
30 Jun 2006 8:26 AM
Omnibuzz
One method...

if(cast('as  ' as varbinary) = cast('as' as varbinary))
print 'match'
else
print 'does not match'


--
-Omnibuzz (The SQL GC)

http://omnibuzz-sql.blogspot.com/
Author
30 Jun 2006 8:26 AM
Urs
Try this:
USE tempdb
GO
CREATE FUNCTION MyStringCompare(@str1 nvarchar(MAX), @str2 nvarchar(MAX))
    RETURNS nvarchar(15)
AS
BEGIN
    IF ((@str1 + N'#') = (@str2 + N'#'))
        RETURN N'match'
    RETURN N'don''t match'
END
GO

SELECT tempdb.dbo.MyStringCompare(N'MYSTRING1', N'MYSTRING1')  -- -> match
SELECT tempdb.dbo.MyStringCompare(N'MYSTRING1', N'MYSTRING1  ') -- -> don't
match
SELECT tempdb.dbo.MyStringCompare(null, N'MYSTRING1  ') -- -> don't match
SELECT tempdb.dbo.MyStringCompare(N'MYSTRING1', null) -- -> don't match
SELECT tempdb.dbo.MyStringCompare(null, null) -- -> don't match

Greetings,
Urs

Show quote
"checcouno" wrote:

> I need to make a function for coding string in which i make difference
> between strings that are identical except from final blank spaces. In SQL 200
> exists an option (collate set or something else) that can make SQL
> distinguish betwene two string like these:
> 'MYSTRING1'
> 'MTSTRING1    ' 
>
> Thanks
Author
30 Jun 2006 10:54 PM
Roy Harvey
How about this:

declare @a varchar(30)
declare @b varchar(30)

set @a = 'MYSTRING1'
set @b = 'MTSTRING1    '

IF (@a = @b AND DATALENGTH(@a) = DATALENGTH(@b))
PRINT 'Matched'
ELSE
PRINT 'Different'

Roy Harvey
Beacon Falls, CT


On Fri, 30 Jun 2006 00:26:01 -0700, checcouno
<checco***@discussions.microsoft.com> wrote:

Show quote
>I need to make a function for coding string in which i make difference
>between strings that are identical except from final blank spaces. In SQL 200
>exists an option (collate set or something else) that can make SQL
>distinguish betwene two string like these:
>'MYSTRING1'
>'MTSTRING1    ' 
>
>Thanks
Author
1 Jul 2006 4:43 PM
--CELKO--
>> I need to make a function for coding string in which make difference between strings that are identical except from final blank spaces. <<

Be very careful about this.  SQL pads shorter strings with blanks for
comparing them, so your function could destroy expected behavior and
you would wind up with your own private language.  Otherwise, use the
DATALENGTH() function; it is standard and portable.

AddThis Social Bookmark Button