10
votes

Si condition en vue de SQL Server

est-il possible d'avoir une condition IF dans des vues

par exemple xxx


3 commentaires

Veuillez mettre en place des efforts pour formater vos questions Comme demandé précédemment . L'icône {} dans la barre d'outils vous permet de formater le code. Pourquoi les deux branches du si 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.


4 Réponses :


2
votes

Non, je ne crois pas que c'est possible.

Vous pouvez utiliser une procédure stockée plutôt pour atteindre cette fonctionnalité.


0 commentaires

9
votes

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


0 commentaires

16
votes

Vous pouvez essayer quelque chose sournois avec une union: xxx

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>


4 commentaires

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.



-1
votes

Utilisez simplement une fonction UDF (fonction définie par l'utilisateur) Ici, vous pouvez utiliser si, sinon, tandis que etc.

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


0 commentaires