Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bug dans fonction REPLACE

3 réponses
Avatar
Fred BROUARD - SQLpro
Un joli bug :

SELECT REPLACE('toto', 'i', NULL)

Je vous laisse deviner ce qui se passe !

A +


--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto:brouardf@club-internet.fr ******************

3 réponses

Avatar
lionelp
Salut Fred,

C'est intentionnel, si un des paramètres est NULL alors le résultat est
NULL.

Cordialement,
LionelP


"Fred BROUARD - SQLpro" wrote in message
news:406dce99$0$292$
Un joli bug :

SELECT REPLACE('toto', 'i', NULL)

Je vous laisse deviner ce qui se passe !

A +


--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************



Avatar
lionelp
j'ai oublié de préciser que ce comportement est valable pour toutes les
fonction internes sur chaînes de caractères


"lionelp" wrote in message
news:
Salut Fred,

C'est intentionnel, si un des paramètres est NULL alors le résultat est
NULL.

Cordialement,
LionelP


"Fred BROUARD - SQLpro" wrote in message
news:406dce99$0$292$
> Un joli bug :
>
> SELECT REPLACE('toto', 'i', NULL)
>
> Je vous laisse deviner ce qui se passe !
>
> A +
>
>
> --
> Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
> Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
> Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
> ****************** mailto: ******************
>




Avatar
Fred BROUARD
oui, mais ce n'est pas correct quand même !

La norme précise que les NULL se propagent dans les opérations.
Or dans ce cas précis il n'y a aucune opération à faire puisque le i
n'existe pas dans toto. C'est simpliste mais abusif...

Si j'avais fait SELECT REPLACE('toto', 'o', NULL)
là je suis d'accord pour recevoir un NULL !

A +

lionelp a écrit:
Salut Fred,

C'est intentionnel, si un des paramètres est NULL alors le résultat est
NULL.

Cordialement,
LionelP


"Fred BROUARD - SQLpro" wrote in message
news:406dce99$0$292$

Un joli bug :

SELECT REPLACE('toto', 'i', NULL)

Je vous laisse deviner ce qui se passe !

A +


--
Frédéric BROUARD - expert SQL, spécialiste : SQL Server / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************









--
Frédéric BROUARD, MVP Microsoft SQL Server. Langage SQL / Delphi / web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
****************** mailto: ******************