Bonjour, voici mon problème...
J'ai besoin de savoir si mon parametre passé à ma store procédure est vide
ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN
(CASE @Ref
WHEN null THEN
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE @Ref)
END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%'
begin
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[[JC Job #]] LIKE '%')
end
ELSE
begin
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE @Ref)
end))
Là, j'ai des messages d'erreur:
- Incorrect syntax near the keyword 'IF'.
- Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP.
Merci infiniement...
Marianne
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Sylvain Lafontaine
Case est une fonction, elle ne peut donc retourner qu'une seule valeur à la fois. Pour le premier cas, vous devez donc mettre un TOP 1 dans vos sous-requêtes Select (ou utiliser une fonction UDF?)
Dans le deuxième cas, vous avez mis des crochets en double: [[ et ]] . Il est également inutile de tester pour « IR65ALIN.[[JC Job #]] LIKE '%' » car cette condition sera toujours vrai sauf pour les cas où [JC Job #] est null
Normalement, il est plus facile d'écrire quelque chose du genre:
... Where (@Ref is Null) or (IR65ALIN.[JC Job #] LIKE @Ref)
ou encore:
if (@ref is null) @ref = '%'
... Where (IR65ALIN.[JC Job #] LIKE @Ref)
-- Sylvain Lafontaine, ing. MVP - Technologies Virtual-PC E-mail: http://cerbermail.com/?QugbLEWINF
"Marianne" wrote in message news:
Bonjour, voici mon problème... J'ai besoin de savoir si mon parametre passé à ma store procédure est vide ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN (CASE @Ref WHEN null THEN
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%' begin
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[[JC Job #]] LIKE '%') end ELSE begin (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) end))
Là, j'ai des messages d'erreur: - Incorrect syntax near the keyword 'IF'. - Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP. Merci infiniement... Marianne
Case est une fonction, elle ne peut donc retourner qu'une seule valeur à la
fois. Pour le premier cas, vous devez donc mettre un TOP 1 dans vos
sous-requêtes Select (ou utiliser une fonction UDF?)
Dans le deuxième cas, vous avez mis des crochets en double: [[ et ]] . Il
est également inutile de tester pour « IR65ALIN.[[JC Job #]] LIKE '%' » car
cette condition sera toujours vrai sauf pour les cas où [JC Job #] est null
Normalement, il est plus facile d'écrire quelque chose du genre:
... Where (@Ref is Null) or (IR65ALIN.[JC Job #] LIKE @Ref)
ou encore:
if (@ref is null) @ref = '%'
... Where (IR65ALIN.[JC Job #] LIKE @Ref)
--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF
"Marianne" <Marianne@discussions.microsoft.com> wrote in message
news:02388BD0-130C-4082-8759-70CA01EC980D@microsoft.com...
Bonjour, voici mon problème...
J'ai besoin de savoir si mon parametre passé à ma store procédure est vide
ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN
(CASE @Ref
WHEN null THEN
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE @Ref)
END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%'
begin
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[[JC Job #]] LIKE '%')
end
ELSE
begin
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE @Ref)
end))
Là, j'ai des messages d'erreur:
- Incorrect syntax near the keyword 'IF'.
- Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP.
Merci infiniement...
Marianne
Case est une fonction, elle ne peut donc retourner qu'une seule valeur à la fois. Pour le premier cas, vous devez donc mettre un TOP 1 dans vos sous-requêtes Select (ou utiliser une fonction UDF?)
Dans le deuxième cas, vous avez mis des crochets en double: [[ et ]] . Il est également inutile de tester pour « IR65ALIN.[[JC Job #]] LIKE '%' » car cette condition sera toujours vrai sauf pour les cas où [JC Job #] est null
Normalement, il est plus facile d'écrire quelque chose du genre:
... Where (@Ref is Null) or (IR65ALIN.[JC Job #] LIKE @Ref)
ou encore:
if (@ref is null) @ref = '%'
... Where (IR65ALIN.[JC Job #] LIKE @Ref)
-- Sylvain Lafontaine, ing. MVP - Technologies Virtual-PC E-mail: http://cerbermail.com/?QugbLEWINF
"Marianne" wrote in message news:
Bonjour, voici mon problème... J'ai besoin de savoir si mon parametre passé à ma store procédure est vide ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN (CASE @Ref WHEN null THEN
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%' begin
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[[JC Job #]] LIKE '%') end ELSE begin (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) end))
Là, j'ai des messages d'erreur: - Incorrect syntax near the keyword 'IF'. - Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP. Merci infiniement... Marianne
Fred BROUARD
J'ai du mal à comprendre ce que vous voulez faire, mais il me semble que l'écriture de votre requête serait grandement simplifiée si vous utilisiez les fontions COALESCE ou NULLIF.
Pouvez vous mettre le texte complet de votre requête et la sémanytique associée ?
A +
Marianne a écrit:
Bonjour, voici mon problème... J'ai besoin de savoir si mon parametre passé à ma store procédure est vide ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN (CASE @Ref WHEN null THEN
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%' begin
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[[JC Job #]] LIKE '%') end ELSE begin (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) end))
Là, j'ai des messages d'erreur: - Incorrect syntax near the keyword 'IF'. - Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP. Merci infiniement... Marianne
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
J'ai du mal à comprendre ce que vous voulez faire, mais il me semble que
l'écriture de votre requête serait grandement simplifiée si vous utilisiez les
fontions COALESCE ou NULLIF.
Pouvez vous mettre le texte complet de votre requête et la sémanytique associée ?
A +
Marianne a écrit:
Bonjour, voici mon problème...
J'ai besoin de savoir si mon parametre passé à ma store procédure est vide
ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN
(CASE @Ref
WHEN null THEN
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE @Ref)
END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%'
begin
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[[JC Job #]] LIKE '%')
end
ELSE
begin
(SELECT [Order #]
FROM IR65ALIN
WHERE IR65ALIN.[JC Job #] LIKE @Ref)
end))
Là, j'ai des messages d'erreur:
- Incorrect syntax near the keyword 'IF'.
- Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP.
Merci infiniement...
Marianne
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
J'ai du mal à comprendre ce que vous voulez faire, mais il me semble que l'écriture de votre requête serait grandement simplifiée si vous utilisiez les fontions COALESCE ou NULLIF.
Pouvez vous mettre le texte complet de votre requête et la sémanytique associée ?
A +
Marianne a écrit:
Bonjour, voici mon problème... J'ai besoin de savoir si mon parametre passé à ma store procédure est vide ou non afin d'accélérer le procéssus. J'ai donc essayé un CASE
WHERE
(IR65ALIN.[Order #] IN (CASE @Ref WHEN null THEN
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE '%' OR IR65ALIN.[JC Job #] is null)
ELSE (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) END))
Je n'ai pas de message d'erreur, mais ça ne retourne rien dutout...
J'ai aussi essayé un IF
(IF @Ref ='%' begin
(SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[[JC Job #]] LIKE '%') end ELSE begin (SELECT [Order #] FROM IR65ALIN WHERE IR65ALIN.[JC Job #] LIKE @Ref) end))
Là, j'ai des messages d'erreur: - Incorrect syntax near the keyword 'IF'. - Incorrect syntax near the keyword 'FROM'.
Pouvez vous me dire ce que je fais de pas correct SVP. Merci infiniement... Marianne
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************