Porté iif sur t-sql

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 416 fois - Téléchargée 24 fois

Contenu du snippet

IIF est une fonction fort pratique que les utilisateur d'access peuvent vouloir retrouver sur MS SQL Server.
Voilà donc une fonction Qui fais approximativement la même chose :

Source / Exemple :


IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[aspne2u4].[IIF]') AND xtype in (N'FN', N'IF', N'TF')) 
DROP FUNCTION [aspne2u4].[IIF]
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_NULLS OFF
GO

CREATE FUNCTION IIF
	(
		@Condition bit,
		@TruePart sql_variant,
		@FalsePart sql_variant
	)
RETURNS sql_variant
AS
	BEGIN
		IF @Condition = 1
			RETURN @TruePart
		RETURN @FalsePart
	END
GO

SET QUOTED_IDENTIFIER OFF
GO

SET ANSI_NULLS ON
GO

Conclusion :


Pour l'utilisé il faut noté le nom de la base suivie d'un point :

SELECT (NomBase.IIF(1,'Oui','Non')) AS Result

A voir également

Ajouter un commentaire

Commentaires

nhervagault
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
23 -
Salut,

dans le cas de sql server
il y a les case qui font la meme chose et en interne.

SELECT title, price,
Budget = CASE price
WHEN price > 20.00 THEN 'Cher'
WHEN price BETWEEN 10.00 AND 19.99 THEN 'Modéré'
WHEN price < 10.00 THEN 'Bon Marché'
ELSE 'Inconnu'
END,
FROM titles

Comme les fonctions le case peut etre mis partout.

Il ne demande pas de fonction supplémentaire.
Et gere plusieurs cas.
Avec le IIF, il faut faire du parenthesage important pour realiser l'exemple si dessus.

Je connais le problème avec les datacolumns expressions, des qu' il y a plus 3 IIF (avec des isnull en plus) dans la condition ca devient complexe.
Scaythe
Messages postés
11
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
4 juin 2010
-
Le Iff existe "nativement" en SQL Server
Scaythe
Messages postés
11
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
4 juin 2010
-
(Pardon) c'est IIf et non Iff ...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.