min (x), donde es un tipo char (cadena) - char(), varchar(), nchar(), nvarchar(), encuentra el valor más bajo en el grupo, basado en las reglas de comparación de cadenas de SQL:
- si dos cuerdas difieren en longitud, la más corta se rellena con caracteres SP (espacios) a la longitud de la más larga.
- La comparación procede de izquierda a derecha, carácter por carácter, según la regla de la secuencia de intercalación en uso.
- en las comparaciones, el valor NULL se compara más bajo que cualquier valor no nulo (el estándar SQL ISO/ANSI dice que es una opción de implementación si NULL se recopila más bajo o más alto que cualquier valor no nulo).
Por lo tanto, si usted tiene una mesa
create table foo
(
myString varchar(16) not null ,
)
a continuación, ejecutar la consulta
select min(myString) from foo
le dará el mismo resultado en forma si se ejecutara
set rowcount 1
select myString
from foo
order by myString
set rowcount 0
Usted básicamente están ordenando el conjunto en secuencia ascendente y seleccionando el primer val ue. MAX(), o curso, le da la inversa, ordenar el conjunto en secuencia descendente y seleccionar el primer valor.
Solo, para su información, creo que la edición de esta pregunta (aunque hace que los datos se "vean" correctos) no expresa la intención del OP que quiere todos esos valores en una fila, no en tres. –
@Larry Lustig: en realidad, creo que la pregunta del OP es engañosa; Dudo que tenga una tabla con una fila y tres valores en ella; probablemente quiera una tabla con una sola columna y tres filas, cada una con uno de esos valores. ¿De qué otro modo haría un 'MIN (Datos)' en esa tabla? –
No está claro, pero creo que, de hecho, cree que MIN opera en una sola fila (porque dijo "una fila"). Creo que lo está confundiendo con una función que toma varios argumentos y devuelve el más pequeño). –