SQL ?
Etienne
-
etienne -
etienne -
Bonjour voilà j'aurai aimé savoir s'il existait une instruction de type if then en SQL (en SQl server pour être tout à fait précis)
J'en aurai besoin (en tout cas ça me serait très pratique) car j'ai une requête à faire, et selon le type de la donnée, la requête sera quelque peu différente (il s'agit de concaténer des champs, et ces champs diffèrent selon la nature de l'article)
Je connais bien sur la clause where (on doit pouvoir se débrouiller uniqument avec ça) mais j'aimerai utiliser if then. En plus je pense que ça existe car quand j'ai taper une requête avec if then dedans, SQL a braillé pour la syntaxe et non pour les mots qu'il ne connaissait pas... "error near the keyword then..."
Merci d'avance pour votre aide
:)
J'en aurai besoin (en tout cas ça me serait très pratique) car j'ai une requête à faire, et selon le type de la donnée, la requête sera quelque peu différente (il s'agit de concaténer des champs, et ces champs diffèrent selon la nature de l'article)
Je connais bien sur la clause where (on doit pouvoir se débrouiller uniqument avec ça) mais j'aimerai utiliser if then. En plus je pense que ça existe car quand j'ai taper une requête avec if then dedans, SQL a braillé pour la syntaxe et non pour les mots qu'il ne connaissait pas... "error near the keyword then..."
Merci d'avance pour votre aide
:)
A voir également:
- SQL ?
- Logiciel sql - Télécharger - Bases de données
- Requete sql pix ✓ - Forum MySQL
- Sql lister les tables ✓ - Forum Programmation
- Récupération serveur sql - Télécharger - Gestion de données
- Migration base access vers sql server - Télécharger - Gestion de données
11 réponses
Salut,
Voici ce que dit l'aide de SQL Server :
"
IF (SELECT AVG(price) FROM titles WHERE type = 'mod_cook') < $15
BEGIN
PRINT 'The following titles are excellent mod_cook books:'
PRINT ' '
SELECT SUBSTRING(title, 1, 35) AS Title
FROM titles
WHERE type = 'mod_cook'
END
ELSE
PRINT 'Average title price is more than $15.'
"
Donc utilise If sans then
ciao
dEUS
There's no success like failure
And failure's no success at all
Voici ce que dit l'aide de SQL Server :
"
IF (SELECT AVG(price) FROM titles WHERE type = 'mod_cook') < $15
BEGIN
PRINT 'The following titles are excellent mod_cook books:'
PRINT ' '
SELECT SUBSTRING(title, 1, 35) AS Title
FROM titles
WHERE type = 'mod_cook'
END
ELSE
PRINT 'Average title price is more than $15.'
"
Donc utilise If sans then
ciao
dEUS
There's no success like failure
And failure's no success at all
Attention:
L'instruction IF ne fait pas partie du SQL.
Elle fait partie des extensions au SQL (TSQL pour Microsoft/Sybase, PL/SQL pour Oracle).
L'instruction IF ne fait pas partie du SQL.
Elle fait partie des extensions au SQL (TSQL pour Microsoft/Sybase, PL/SQL pour Oracle).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Oulala j'ai toujours des problèmes, j'ai fais pas mal de tests, et une requête vraiment conne comme:
IF DATALENGTH("gjdfklhgmsfhjsmhik")>10 BEGIN UPDATE article set GA_LIBELLE="jsl" END
me renvois une erreur de création de handle de curseur (si quelqu'un sait pourquoi...)
IF DATALENGTH("gjdfklhgmsfhjsmhik")>10 BEGIN UPDATE article set GA_LIBELLE="jsl" END
me renvois une erreur de création de handle de curseur (si quelqu'un sait pourquoi...)
Erreur de création de curseur ?
bizarre.
Mais tu as vraiment besoin d'utiliser DATALENGTH ?
LEN ne suffit pas ?
(DATALENGTH est uniquement utile pour mesure l'espace mémoire consommé par un champ. Il n'est pas utile pour mesurer la longueur d'un champ char/varchar/nvarchar).
bizarre.
Mais tu as vraiment besoin d'utiliser DATALENGTH ?
LEN ne suffit pas ?
(DATALENGTH est uniquement utile pour mesure l'espace mémoire consommé par un champ. Il n'est pas utile pour mesurer la longueur d'un champ char/varchar/nvarchar).
LEN suffirait (merci de m'avoir fourni cette info) mais le problème reste le même avec LEN ou DATALENGTH...
Ca vient peut etre de mon implémentation SQL. en fait je tape les requêtes directement dans un logiciel (de gestion commerciale), donc je sais pas trop, ça pourrait dépendre de l'implémentation de ce logiciel... je vais demander des renseignements au prestataire pour savoir si je peux utiliser un if ou pas..
Ca vient peut etre de mon implémentation SQL. en fait je tape les requêtes directement dans un logiciel (de gestion commerciale), donc je sais pas trop, ça pourrait dépendre de l'implémentation de ce logiciel... je vais demander des renseignements au prestataire pour savoir si je peux utiliser un if ou pas..
bizarre cette histoire de curseur.
Si tu as un doute sur ta requête, lance la seule dans le Query Analyzer.
Là au moins tu saura si c'est ta requête seule qui est en cause dans l'erreur.
Si tu as un doute sur ta requête, lance la seule dans le Query Analyzer.
Là au moins tu saura si c'est ta requête seule qui est en cause dans l'erreur.