Je souhaite sélectionner une date (ma colonne est de type horodatage). Mais quand dans la colonne est une date NULL, je veux retourner une chaîne vide. Comment faire ça? J'ai écrit ceci:
SELECT
CASE WHEN to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') IS NULL THEN ''
ELSE to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') AS last_post END
to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') AS last_post, content
FROM topic;
Mais cela me montre quelques erreurs, je ne sais pas vraiment pourquoi:
ERROR: syntax error at or near "as"
LINE 1: ...ELSE to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') AS last_po...
^
L'utilisation de la fonction COALESCE()
est la meilleure approche, car elle permute simplement une valeur de remplacement dans le cas d'un NULL. La lisibilité est également considérablement améliorée. :)
SELECT COALESCE(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') AS last_post, content FROM topic;
Vous mettez votre AS
dans le boîtier?
Essayer:
SELECT
CASE WHEN last_post IS NULL THEN ''
ELSE to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') END AS last_post,
content
FROM topic;
Je n'ai pas encore essayé la requête.
select coalesce(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') as last_post, content
from topic;