equal - ¿Qué es este operando(*=estrella-igual) en el servidor SQL 2000?
sql server symbol (2)
En MSSQL, la convención * = en la cláusula WHERE indica una unión. Entonces, lo que realmente está viendo es una JUNTA EXTERNA IZQUIERDA entre tbl1 y tbl2 en person_name donde se devolverán todos los valores de tbl1 y los valores coincidentes en tbl2.
Tengo una consulta que obtuve de ms sql 2000 y la conecté a 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 varchars que contienen todos los caracteres, no enteros. Lo escribí como:
AND a.person_name * a.person_name = b.person_name
Voila! Parece que ha funcionado. ¿Alguien puede explicar lo que está pasando? ¿El operador * = convierte los caracteres en sus equivalentes enteros o? ¿Y por qué no podría encontrar este operador en cualquier lugar de la web?
En SQL 2000, esto se usó como UNO EXTRA IZQUIERDO
= * es una JUNTA EXTERIOR DERECHA
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 here :
Especifica una unión externa utilizando la sintaxis específica del 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.