microsoft full descargar caracteristicas sql sql-server

full - ¿Cómo comprobar si no hay cadena vacía y no está vacía en el servidor SQL?



sql server descargar (8)

Coalesce plegará nulos en un valor predeterminado:

COALESCE (fieldName, '''') <> ''''

¿Cómo podemos verificar en un servidor SQL WHERE si la columna no es nula y no la cadena vacía ( '''' )?


Esta condición realizará una comprobación de "nulo, vacío o espacio en blanco", sin la manipulación innecesaria de cadenas de LTRIM y RTRIM .

SELECT * FROM [Table] WHERE COALESCE(PATINDEX(''%[^ ]%'', [Value]), 0) > 0


Puede usar cualquiera de estos para verificar null, espacios en blanco y cadenas vacías.

WHERE COLUMN <> '''' WHERE LEN(COLUMN) > 0 WHERE NULLIF(LTRIM(RTRIM(COLUMN)), '''') IS NOT NULL


Si solo quieres hacer coincidir "" como una cadena vacía

WHERE DATALENGTH(COLUMN) > 0

Si quieres contar cualquier cadena que consista completamente de espacios como vacíos

WHERE COLUMN <> ''''

Ambos no devolverán valores NULL cuando se usen en una cláusula WHERE . Como NULL evaluará como UNKNOWN para estos en lugar de TRUE .

CREATE TABLE T ( C VARCHAR(10) ); INSERT INTO T VALUES (''A''), (''''), ('' ''), (NULL); SELECT * FROM T WHERE C <> ''''

Devuelve solo la única fila A Es decir, las filas con NULL o una cadena vacía o una cadena que consista completamente en espacios están excluidas por esta consulta.

SQL Fiddle


Simplemente marque: donde valor> '''' - no nulo y no vacío

-- COLUMN CONTAINS A VALUE (ie string not null and not empty) : -- (note: "<>" gives a different result than ">") select iif(null > '''', ''true'', ''false''); -- false (null) select iif('''' > '''', ''true'', ''false''); -- false (empty string) select iif('' '' > '''', ''true'', ''false''); -- false (space) select iif('' '' > '''', ''true'', ''false''); -- false (tab) select iif('' '' > '''', ''true'', ''false''); -- false (newline) select iif(''xxx'' > '''', ''true'', ''false''); -- true -- -- -- NOTE - test that tab and newline is processed as expected: select ''x x'' -- tab select ''x x'' -- newline


Una manera fácil de hacer esto es:

where (field is not null and field <> '''')

Si no hay muchas filas o este campo no está indexado, puede usar:

where isnull(field,'''') <> ''''


de manera básica

SELECT * FROM [TableName] WHERE column_name!='''' AND column_name IS NOT NULL


WHERE NULLIF(your_column, '''') IS NOT NULL

Hoy en día (4.5 años después), para que sea más fácil de leer para un humano, simplemente usaría

WHERE your_column <> ''''

Si bien existe la tentación de hacer explícita la verificación nula ...

WHERE your_column <> '''' AND your_column IS NOT NULL

... como lo demuestra @Martin Smith en la respuesta aceptada, realmente no agrega nada (y yo personalmente evito los nulos de SQL por completo hoy en día, ¡así que de todos modos no se aplicaría a mí!).