pourquoi une proc stoc comme celle ci est incorrecte?
select
col1,
col2,
case exists (select 1 from foo2 as f2 where f2.col1 = f1.col1)
when true then 1
else 0
end
from foo1 as f1
ce qui est refusé est la partie qui commence avec case
merci
pourquoi une proc stoc comme celle ci est incorrecte?
select
col1,
col2,
case exists (select 1 from foo2 as f2 where f2.col1 = f1.col1)
when true then 1
else 0
end
from foo1 as f1
ce qui est refusé est la partie qui commence avec case
merci
CASE est une structure utilisable dans une requête et possède une syntaxe bien définie.
Votre utilisation du case est syntaxiquement incorrecte.
Lisez l'article que j'ai écrit à ce sujet :
http://sqlpro.developpez.com/cours/sqlaz/select/#L7
En l'occurrence, vous auriez dû écrire :
en effet le :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 select col1, col2, case WHEN exists (select 1 from foo2 as f2 where f2.col1 = f1.col1) THEN 1 ELSE 0 end from foo1 as f1
Attend une expression VALUABLE et non un prédicat !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 case <expression> ... end
A +
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
Partager