OVH Cloud OVH Cloud

J'ai 2 questions...

3 réponses
Avatar
Mrianne Novello
Bonjour =E0 tous!
J'ai 2 questions pour vous...
1 - les requ=EAtes Ex=E9cution de Access sont-elles=20
l'=E9quivalent des "Stored procedures" ou des "Views" dans=20
SQL ???

2 - Si dans ma Views de SQL, je met un AS ..., puis-je=20
utiliser cette r=E9f=E9rence dans cette m=EAme views? ex:

SELECT Nom as info1,
CASE=20
WHEN info1 =3D ''
THEN ''
ELSE RIGHT(info1, Len(info1) - 1))=20
END AS info
FROM ...

Si c'est possible, pouvez-vous me dire mon erreur SVP...

Merci! Marianne

3 réponses

Avatar
Zim
Bonsoir,

A la première question je serais tenté de répondre à "procédures stockées"
(ça fait très longtemps que je n'ai pas touché à access, mais bon, ça me
semble plus logique)

Quant à la seconde question, la bonne syntaxe est

SELECT Nom as info1,
info = CASE
WHEN info1 = ''
THEN ''
ELSE RIGHT(info1, Len(info1) - 1))
END
FROM ...

Zim.



"Mrianne Novello" a écrit dans le
message de news:033001c398d1$d0233160$
Bonjour à tous!
J'ai 2 questions pour vous...
1 - les requêtes Exécution de Access sont-elles
l'équivalent des "Stored procedures" ou des "Views" dans
SQL ???

2 - Si dans ma Views de SQL, je met un AS ..., puis-je
utiliser cette référence dans cette même views? ex:

SELECT Nom as info1,
CASE
WHEN info1 = ''
THEN ''
ELSE RIGHT(info1, Len(info1) - 1))
END AS info
FROM ...

Si c'est possible, pouvez-vous me dire mon erreur SVP...

Merci! Marianne
Avatar
VUILLERMET Jacques
1- Une requêtes Exécution dans Access c'est 1 seule requête de type
INSERT/UPDATE/DELETE.
Un procédure stockée dans SQL Server c'est un programme complet écrit en
Transact-SQL dans laquelle toutes séries d'actions est possible, donc, rien
à voir.

2- Non, hélas. Il me semble qu'il s'agit d'une lacune de SQL Server alors
que Access le permet (!).
Ta requête sera bien :

SELECT Nom as info1,
CASE
WHEN Nom = ''
THEN ''
ELSE RIGHT(Nom, Len(Nom) - 1))
END AS info
FROM ...

Jacques.


"Mrianne Novello" a écrit dans le
message de news:033001c398d1$d0233160$
Bonjour à tous!
J'ai 2 questions pour vous...
1 - les requêtes Exécution de Access sont-elles
l'équivalent des "Stored procedures" ou des "Views" dans
SQL ???

2 - Si dans ma Views de SQL, je met un AS ..., puis-je
utiliser cette référence dans cette même views? ex:

SELECT Nom as info1,
CASE
WHEN info1 = ''
THEN ''
ELSE RIGHT(info1, Len(info1) - 1))
END AS info
FROM ...

Si c'est possible, pouvez-vous me dire mon erreur SVP...

Merci! Marianne
Avatar
Fred BROUARD
Pas une lacune, mais le comportement normal du fait de la norme SQL.
Le renomage d'une colonne, n'est là que pour l'affichage.
Par affichage entendez nom des colonnes du résultat et les opérations
SQL d'affichage comme le tri !

Donc un alias de colonne ne peut pas être utilisé dans le corps de
l'ordre, le SGBDR devant retrouver l'inforation et non l'expression

Imagine que l'on puisse faire :

SELECT (MAX(Col1) -133) / AVG(col1) as NewColonne
FROM MaTable
WHERE NewColonne BETWEEN 1 AND 10

Cela violerait toutes les régles de la logique ensembliste sur laquelle
repose les bases de données.

En revanche, la clause de TRI n'a rien à voir avec le calcul
ensembliste, c'est juste une question de présentation des données.

A +

VUILLERMET Jacques a écrit:
1- Une requêtes Exécution dans Access c'est 1 seule requête de type
INSERT/UPDATE/DELETE.
Un procédure stockée dans SQL Server c'est un programme complet écrit en
Transact-SQL dans laquelle toutes séries d'actions est possible, donc, rien
à voir.

2- Non, hélas. Il me semble qu'il s'agit d'une lacune de SQL Server alors
que Access le permet (!).
Ta requête sera bien :

SELECT Nom as info1,
CASE
WHEN Nom = ''
THEN ''
ELSE RIGHT(Nom, Len(Nom) - 1))
END AS info
FROM ...

Jacques.


"Mrianne Novello" a écrit dans le
message de news:033001c398d1$d0233160$
Bonjour à tous!
J'ai 2 questions pour vous...
1 - les requêtes Exécution de Access sont-elles
l'équivalent des "Stored procedures" ou des "Views" dans
SQL ???

2 - Si dans ma Views de SQL, je met un AS ..., puis-je
utiliser cette référence dans cette même views? ex:

SELECT Nom as info1,
CASE
WHEN info1 = ''
THEN ''
ELSE RIGHT(info1, Len(info1) - 1))
END AS info
FROM ...

Si c'est possible, pouvez-vous me dire mon erreur SVP...

Merci! Marianne





--
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: ******************