Reglas de comparación de cadenas no iguales en SQL

Escrito por j.t. barett | Traducido por beatriz sánchez
  • Comparte
  • Twittea
  • Comparte
  • Pin
  • E-mail
Reglas de comparación de cadenas no iguales en SQL
El Lenguaje de Consulta Estructurado compara las cadenas de caracteres usando reglas complejas. (Thinkstock Images/Comstock/Getty Images)

El Lenguaje de Consulta Estructurado (SQL, "Structured Query Language") usado para la programación de bases de datos de computadoras, trata las cadenas de caracteres como lo hacen la mayoría de los lenguajes de programación. Las variables de cadenas de caracteres y literales tienen texto como "Joe Smith" o "500 Main Street". SQL tiene reglas que gobiernan la comparación de cadenas no iguales, cuya salida a veces es inesperada. Algunas comparaciones de cadenas no iguales como ente "abc" y "xyz" son obvias, mientras que otras requieren el estudio de las reglas de SQL.

Otras personas están leyendo

Sensibilidad a mayúsculas

El software SQL Server de Microsoft no es sensible a mayúsculas para comparaciones de cadenas. Esto significa que trata las cadenas "John Doe" y "JOHN DOE" como iguales. Muchas veces un programador considerará esto como algo bueno puesto que no tiene que escribir código adicional para forzar que las dos cadenas sean mayúsculas. Pero en algunos casos, puede querer una comparación de cadenas sensible a las mayúsculas. Por otro lado, el software de bases de datos Oracle es sensible a las mayúsculas, así que “JOHN DOE” no es lo mismo que “John Doe”. Un programador que quiera eliminar la sensibilidad a mayúsculas debería utilizar una función como UPPER() en las dos cadenas, forzando que todos los caracteres estén en mayúsculas.

Longitud de la cadena

Las variables de caracter contienen cadenas con longitudes no iguales se comparan desigualmente, aunque empiecen con los mismos caracteres. Por ejemplo, “500 Main” y “500 Main Street” no son iguales. Las variables de carácter definidas para distintas longitudes pero que tienen el mismo contenido se comparan de forma igual. Si un campo de descripción tiene una longitud definida de 50 y otra tiene una longitud de 30, serán iguales si las dos tienen el texto “Blue Running Shoes”.

Tipo

Puedes definir campos de caracteres SQL como tipos CHAR, VARCHAR, NCHAR o NVARCHAR. CHAR y NCHAR tienen tamaños fijos. VARCHAR y NVARCHAR tienen tamaños que pueden cariar hasta un máximo indicado en la definición del campo. El tipo del campo no afecta a las comparaciones de cadena, Si tienen los mismos contenidos se compararán como iguales. No puedes comparar directamente un campo de tipo TEXT con otro campo de cadena de caracteres. SQL marcará esto como un error.

Blancos

Para SQL Server las cadenas de caracteres pueden tener texto con cualquier combinación de blancos al principio, final o entre medias. Dos cadenas que tengan contenido parecido pero donde una tenga blancos al final se compararán como iguales, por ejemplo, "abc" y "abc ". Pero SQL considerará que cadenas con blancos al principio como " abc" y "abc" no son iguales. Las cadenas con blancos en el medio como "abc" y "a bc" de la misma forma tampoco serán iguales.

No dejes de ver

Filtrar por:
  • Mostrar todos
  • Artículos
  • Galerías de fotos
  • Videos
Ordenar:
  • Más relevante
  • Más popular
  • Más reciente

No se encuentran artículos disponibles

No se encuentran slideshows disponibles

No se encuentran videos disponibles