Tengo una consulta que extraje de ms sql 2000 y se enchufa en una consulta MySql. No funcionó, MySql se ahogaría con el operador * =. En este ejemplo, tengo dos columnas varchar llamadas person_name.¿Qué es este operando (* = star-igual) en SQL Server 2000?
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 podría leerse como myInt * myInt = myTotal. Sin embargo, estoy trabajando con varchar que contienen todos los caracteres, sin enteros. Lo escribí como:
AND a.person_name * a.person_name = b.person_name
Voila! Parece que funcionó. ¿Alguien puede explicar lo que está sucediendo? ¿El operador * = convierte los caracteres a sus equivalentes enteros o? ¿Y por qué no podría encontrar este operador en algún lugar de la web?
¿Son esos campos de cadena/char? Me pregunto cuál sería el razonamiento detrás de la multiplicación de cadenas. –
Sí, son campos varchar. Me estaba haciendo la misma pregunta: "¿Por qué demonios multiplicas dos cuerdas?" –
Y si todavía está utilizando la base de datos del servidor SQl 2000, todas las instancias de = * o * = deben corregirse a uniones izquierdas o uniones hacia la derecha ya que la unión implícita está rota incluso en el servidor SQl 2000 y NO puede devolver los resultados correctos. en algún momento interpretado como una combinación cruzada. Las combinaciones implícitas nunca se deben usar para las uniones externas en SQl Server. – HLGEM