-2

What is the equivalent of SQL Server query form for the below Oracle query in a LIKE statement:

((UPPER(ADDRESS) like '%'|| UPPER(:VALUE1) || '%' ) OR (ADDRESS IS NULL AND :VALUE1 IS NULL))

I am stuck with the syntax '%'||------||'%'.

Paco
  • 4,520
  • 3
  • 29
  • 53

3 Answers3

0

You can use + instead of || to concatenate the strings

((UPPER(ADDRESS) like '%'+ UPPER(VALUE1) + '%' ) OR (ADDRESS IS NULL AND VALUE1 IS NULL))

You also do not need to use upper in comparison for SQL Server. Comparisons in SQL Server are case insensitive.

Is this part of a where clause or something?

Pat
  • 314
  • 2
  • 4
  • 14
0

|| is Oracle's concatenation operator. SQL Server's equivilent is +.

((UPPER(ADDRESS) like '%' + UPPER(@VALUE1) + '%' ) 
OR (ADDRESS IS NULL AND @VALUE1 IS NULL))

Incidentally, || is the SQL standard, + is used by some databases, like SQL Server instead of following the standard.

Allan
  • 17,141
  • 4
  • 52
  • 69
0
((UPPER(ADDRESS) like '%' + UPPER(VALUE1) + '%' ) OR (ADDRESS IS NULL AND VALUE1 IS NULL))

Note that using upper is only necessary depending on the collation setting.

Dave.Gugg
  • 6,561
  • 3
  • 24
  • 43