est-il possible d'avoir une condition IF dans des vues
par exemple p>
4 Réponses :
Non, je ne crois pas que c'est possible. p>
Vous pouvez utiliser une procédure stockée plutôt pour atteindre cette fonctionnalité. P>
Vues n'autorise que Sélectionner des instructions telles que indiquées dans ici
Si vous devez faire si vous devez faire des valeurs de colonne, vous pouvez utiliser un P>
CREATE PROCEDURE DOSOMETHING
(
@ID INT
)
AS
BEGIN
IF @ID > 100
SELECT 1 AS ID,'ME' AS NAME, GETDATE() AS VARIABLEDATECOL, NEWID() AS VARIABLEGUID
ELSE
SELECT 2 AS ID, 'YOU' AS NAME
END
Vous pouvez essayer quelque chose sournois avec une union: Cette méthode nécessiterait les deux instructions de sélection pour renvoyer le même ensemble de champs, bien que leurs sources puissent être différentes. P> < / p>
Cela fait également le test d'existence deux fois. Je ne pouvais pas penser à une façon d'éviter cela mais suspect qu'il pourrait y avoir une manière ruse.
Cela doit avoir des champs communs. Mais dans mon cas, la première table a 10 colonnes et dans la deuxième table seulement 2 colonnes
Ensuite, une vue ne peut pas être utilisée car elle doit renvoyer le même ensemble de champs.
Merci @Codebymonlight Le conseil de l'Union m'a aidé à un problème similaire.
Utilisez simplement une fonction UDF (fonction définie par l'utilisateur) Ici, vous pouvez utiliser si, sinon, tandis que etc. p>
Mais lorsque vous manipulez des données (insérer, mettre à jour, supprimer), vous devez utiliser des procédures stockées, car les UDF ne sont pas capables de le faire p>
Veuillez mettre en place des efforts pour formater vos questions Comme demandé précédemment . L'icône
{} code> dans la barre d'outils vous permet de formater le code. Pourquoi les deux branches dusi code> font la même chose?@Martin merci Martin je vais faire cette prochaine fois
Est-ce que l'une des réponses a résolu votre problème? Si oui, veuillez la marquer comme la réponse car elle aidera les autres qui ont le même problème que vous à l'avenir et Google.