begin process at 2008 08 08 23:15:28
1 223 648 membres
406 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PORTÉ IIF SUR T-SQL


Information sur la source

Description

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

  • 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
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
  • signaler à un administrateur
    Commentaire de nhervagault le 29/09/2005 22:44:13

    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.

  • signaler à un administrateur
    Commentaire de Scaythe le 08/11/2006 09:10:16

    Le Iff existe "nativement" en SQL Server

  • signaler à un administrateur
    Commentaire de Scaythe le 08/11/2006 09:11:14

    (Pardon) c'est IIf et non Iff ...

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS