LOWER función escalar
La función LOWER devuelve una serie en la que todos los caracteres se convierten a caracteres en minúsculas.
El esquema es SYSIBM.
- expresión-serie
- Expresión que especifica la cadena que se va a convertir. la expresión de cadena debe devolver un valor que sea una cadena de caracteres o gráficos incorporada. Un argumento de cadena de caracteres no debe ser un CLOB, y un argumento de cadena gráfica no debe ser un DBCLOB. Si string-expression es una cadena gráfica EBCDIC, no debe especificarse una cadena en blanco para locale-name-string. Si string-expression es un dato de bits, no se debe especificar locale-name-string.
El argumento también puede ser un tipo de datos numérico. El argumento numérico se convierte implícitamente a un tipo de datos VARCHAR.
- cadena-nombre-localidad
- Una constante de cadena o una variable de cadena de host que no sea un CLOB o DBCLOB que especifique un nombre de configuración regional válido. Si la cadena de nombre de localización no está en EBCDIC, se convierte a EBCDIC. La longitud de la cadena de nombre de ubicación debe estar en el rango de 1 a 255 bytes de la representación EBCDIC. El valor de cadena-nombre-localización no distingue entre mayúsculas y minúsculas y debe ser una localización válida. Para obtener información sobre las configuraciones regionales y sus convenciones de nomenclatura, consulte Creación y uso de bibliotecas de vínculos dinámicos (DLL ). Algunos ejemplos de lugares son:
- Fr_BE
- Fr_FR@EURO
- En_US
- Ja_JP
El proceso de conversión viene determinado por el valor que se especifique para el nombre de la configuración regional, de la siguiente manera:
- en blanco
- Los caracteres en mayúsculas A-Z de SBCS se convierten en caracteres en minúsculas a-z de SBCS, y los caracteres con marcas diacríticas no se convierten. Si la cadena contiene caracteres MIXED o DBCS, los caracteres latinos en mayúsculas de ancho completo A-Z se convierten en caracteres en minúsculas de ancho completo a-z. Para un rendimiento óptimo, especifique una cadena en blanco a menos que sus datos deban procesarse utilizando las reglas definidas por una configuración regional específica.
- UNI
- La conversión utiliza las capacidades de carcasa NORMAL y ESPECIAL, tal como se describe en Seleccionar las conversiones. No debe especificar UNI cuando la expresión de cadena es datos EBCDIC.
UNI_60
La conversión utiliza Unicode Standard 6.0.0 y la capacidad de mayúsculas NORMAL, como se describe en Seleccionar las conversiones. No debe especificar UNI_60 cuando la expresión de cadena sea datos EBCDIC.
UNI_90
La conversión utiliza Unicode Standard 9.0.0 y la capacidad de mayúsculas NORMAL, como se describe en Seleccionar las conversiones. No debe especificar UNI_90 cuando la expresión de cadena sea datos EBCDIC.
- UNI_SIMPLE
- Las conversiones de caja utilizan las capacidades de caja NORMALES descritas en Seleccionar las conversiones. UNI_SIMPLE no se puede utilizar con datos EBCDIC.
- Nombre del entorno local
- La configuración regional define las reglas para la conversión a caracteres en minúscula.
El valor de la variable host no debe ser nulo. Si la variable host tiene una variable indicadora asociada, el valor de la variable indicadora no debe indicar un valor nulo. El nombre de la localidad debe ser:
- justificado a la izquierda dentro de la variable anfitriona
- rellenado a la derecha con espacios en blanco si su longitud es menor que la de la variable anfitriona y la variable anfitriona es de tipo carácter de longitud fija o datos gráficos
Si no se especifica locale-name-string, la configuración regional se determina mediante el registro especial CURRENT LOCALE LC_CTYPE. Para obtener información sobre el registro especial, consulte el registro especial CURRENT LOCALE LC_CTYPE. Sin embargo, si un índice hace referencia a la función LOWER, el local se determina de la siguiente manera (en orden) para determinar si el índice se puede utilizar:
- En el momento de la preparación: utilizando el valor en el registro especial CURRENT LOCALE LC_CTYPE
- En el momento de la vinculación: utilizando el valor del campo LOCALE LC_CTYPE en el panel de instalación DSNTIPF
Si el índice se elige en la ruta de acceso, la configuración regional en el registro especial CURRENT LOCALE LC_CTYPE debe permanecer igual en tiempo de ejecución, y preparar o vincular tiempo. Para evitar esta dependencia, no omita locale-name-string.
Si se hace referencia a la función LOWER en un índice basado en expresiones, se debe especificar locale-name-string. Consulte la sección de ejemplos para ver un ejemplo de cómo se puede utilizar el índice en una consulta.
- entero
- Un valor entero que especifica el atributo de longitud del resultado. Si se especifica, el entero debe ser una constante entera en el rango de 1 a 32704 bytes en la representación del esquema de codificación de la expresión de cadena.
Si no se especifica un entero, el atributo de longitud del resultado es el mismo que la longitud de la expresión de cadena.
Para datos Unicode, el uso de la función LOWER puede resultar en expansión si se procesan ciertos caracteres. Por ejemplo, LOWER ('Ì') —UX'00CC'— dará como resultado UX'006903070300' (si la configuración regional LT_LT está en vigor en ese momento). Debe asegurarse de que la longitud del resultado sea lo suficientemente grande como para contener el resultado de la expresión.
El resultado puede ser nulo; si el argumento es nulo, el resultado es el valor nulo.
Notas
- Sintaxis alternativa:
- LCASE es sinónimo de LOWER. LOWER debe utilizarse para cumplir con el estándar SQL.
ejemplos
- Ejemplo 1:
- Devuelve los caracteres del valor de la variable de host NAME en minúsculas. NOMBRE tiene un tipo de datos VARCHAR(30) y un valor de «Christine Smith». Asume que la configuración regional en vigor está en blanco.
El resultado es el valor «christine smith».SELECT LCASE(:NAME) FROM SYSIBM.SYSDUMMY1; - Ejemplo 2:
- Devuelve la minúscula de «Ì». Supongamos que la configuración regional en vigor es LT_LT.
Esto daría lugar a un error debido a la expansión que se produce cuando se procesan ciertos caracteres Unicode. Para evitar el error, necesitaría utilizar la siguiente declaración en su lugar:SELECT LOWER('Ì') FROM SYSIBM.SYSDUMMYU;
El resultado de la declaración anterior es el valor «UX'006903070300 ».SELECT LOWER(VARCHAR('Ì', 3)) FROM SYSIBM.SYSDUMMYU; - Ejemplo 3:
- Cree un índice EMPLOYEE_NAME_LOWER para la tabla EMPLOYEE basado en la función integrada LOWER con el nombre de configuración regional 'LT_LT'.
CREATE INDEX EMPLOYEE_NAME_LOWER ON EMPLOYEE (LOWER(LASTNAME, 'LT_LT', 60), LOWER(FIRSTNAME, 'LT_LT', 60), ID); - Ejemplo 4:
- Cree un índice LNAME para la tabla T1 basado en la función LOWER con el valor local predeterminado, ' '. A continuación, especifique la misma expresión en una consulta.
CREATE INDEX LNAME ON TI (LOWER(LASTNAME, ' ')); SELECT LOWER(LASTNAME, ' ') FROM TI WHERE LOWER(LASTNAME, ' ') = 'smith'; - Ejemplo 5:
- Cree un índice LNAME basado en la función LOWER con un nombre de configuración regional «FR_CA» para la tabla T1. A continuación, especifique la misma expresión en una consulta, excepto que se omite locale-name-string.
CREATE INDEX LNAME ON TI (LOWER(LASTNAME, 'FR_CA'));Si la consulta es una sentencia dinámica y el registro especial CURRENT LOCALE LC_CTYPE contiene 'FR_CA':SELECT LASTNAME FROM TI WHERE LOWER(LASTNAME)='smith';En el momento de la preparación, la configuración regional 'FR_CA' en CURRENT LOCALE LC_CTYPE se utiliza para LOWER(LASTNAME) en el predicado para determinar si el índice LNAME puede utilizarse para el acceso al índice. Si el índice LNAME se utiliza en la selección de la ruta de acceso, en tiempo de ejecución, la configuración regional en CURRENT LOCALE LC_CTYPE debe permanecer igual.
Si la consulta es una declaración estática y se ha establecido la configuración regional «FR_CA» en el campo LOCALE LC_CTYPE del panel de instalación DSNTIPF:SELECT LASTNAME FROM TI WHERE LOWER(LASTNAME)='smith';En el momento de la vinculación, se utiliza el local 'FR_CA' en el archivo LOCALE LC_CTYPE del panel de instalación DSNTIPF para LOWER(LASTNAME) en el predicado para determinar si el índice LNAME se utiliza para el acceso al índice. Si se elige el índice LNAME en la selección de la ruta de acceso, la configuración regional en el registro especial CURRENT LOCALE LC_CTYPE debe contener 'FR_CA'.
