¿Qué es este operando (* = star-equal) en SQL Server 2000?

Tengo una consulta que saqué de ms sql 2000 y se enchufa en una consulta de MySql. No funcionó, MySql se ahogaría con el operador * =. En este ejemplo, tengo dos columnas varchar llamadas person_name.

SELECT * FROM tbl1 a, tbl2 b WHERE a.id = b.id AND a.person_name *= b.person_name 

Sé que en otros idiomas myInt * = myTotal también se puede leer como myInt * myInt = myTotal. Sin embargo, estoy trabajando con varchar que contienen todos los caracteres, sin integers. Lo escribí como:

 AND a.person_name * a.person_name = b.person_name 

Voila! Parece que funcionó. ¿Alguien puede explicar lo que está pasando? ¿El operador * = convierte los caracteres a sus equivalentes integers o? ¿Y por qué no podría encontrar este operador en algún lugar de la web?

En SQL 2000 esto se usó como UNIÓN EXTERIOR IZQUIERDA

= * es una DERECHA UNIÓN EXTERIOR

Su consulta podría ser:

 SELECT * FROM tbl1 a LEFT OUTER JOIN tbl2 b ON a.person_name = b.person_name WHERE a.id = b.id 

Como se indica aquí :

Especifica una combinación externa que utiliza la syntax específica de producto no estándar y la cláusula WHERE. El operador * = se usa para especificar una combinación externa izquierda y el operador = * se usa para especificar una combinación externa derecha.

En MSSQL, la convención * = en la cláusula WHERE indica una unión. Entonces, lo que realmente está viendo es una UNIÓN EXTERIOR IZQUIERDA entre tbl1 y tbl2 en person_name donde se devolverán todos los valores de tbl1 y los valores coincidentes en tbl2.

Intereting Posts