Quiero verificar los datos, pero ignórelos si es nulo o está vacío. Actualmente la consulta es la siguiente ...
Select
Coalesce(listing.OfferText, company.OfferText, '') As Offer_Text,
from tbl_directorylisting listing
Inner Join tbl_companymaster company
On listing.company_id= company.company_id
Pero quiero obtener company.OfferTex
t si listing.Offertext
es una cadena vacía, así como si es nula.
¿Cuál es la mejor solución de rendimiento?
sql-server-2005
digiguru
fuente
fuente
En este ejemplo, si
listing.OfferText
es NULL, la función LEN () también debería devolver NULL, pero aún así no es> 0.Actualizar
He aprendido algunas cosas en los 5 años y medio desde que publiqué esto, y ahora lo hago de manera muy diferente:
Esto es similar a la respuesta aceptada, pero también tiene un respaldo en caso de
Company.OfferText
que también sea nulo. Ninguna de las otras respuestas actuales usandoNULLIF()
también hace esto.fuente
fuente
Aquí hay otra solución:
fuente
Puede usar
ISNULL
y verificar la respuesta con la salida conocida:fuente
En SQL Server 2012 tienes
IIF
, por ejemplo, puedes usarlo comoDe la misma manera puede verificar si el campo está vacío.
fuente
Use la función LEN para verificar valores nulos o vacíos. Puede usar LEN (@SomeVarcharParm)> 0. Esto devolverá falso si el valor es NULL, '' o ''. Esto se debe a que LEN (NULL) devuelve NULL y NULL> 0 devuelve false. Además, LEN ('') devuelve 0. Vea por usted mismo ejecutar:
fuente
fuente
NULLIF()
y fusionarse en una cadena vacía sicompany.OfferText
es nulo. Sin embargo, la segundaNULLIF()
llamada aquí no sirve para nada, ya que si ese valor es una cadena vacía, de todos modos solo se fusionará con una cadena vacía.Esta combinación simple de COALESCE y NULLIF debería hacer el truco:
Nota: Agregue otra cadena vacía como último argumento COALESCE si desea que la instrucción devuelva una cadena vacía en lugar de NULL si ambos valores son NULL.
fuente
Sé que este es un hilo antiguo, pero acabo de ver una de las publicaciones anteriores y no es correcto.
Si está utilizando LEN (...) para determinar si el campo es NULO o VACÍO , debe usarlo de la siguiente manera:
fuente
Aquí hay una solución, pero no sé si es la mejor ...
fuente
fuente
esta sintaxis:
funcionó para mí en Microsoft SQL Server 2008 (SP3)
fuente
Para evitar los registros con
Empty
oNull
valor en el resultado SQLsimplemente podemos agregar
..... WHERE Column_name != '' or 'null'
fuente
fuente
[Column_name]> '' excluye Nulos y cadenas vacías. Hay un espacio entre las comillas simples.
fuente
Esto también atiende espacios.
fuente