代码之家  ›  专栏  ›  技术社区  ›  MarlonRibunal

在TSQL中使用逻辑

  •  2
  • MarlonRibunal  · 技术社区  · 17 年前

    IF (Column1 = x)
    {
         --CTE statement
    }
    ELSE
    {
        --SQL statement
    }
    

    感谢您的帮助。

    2 回复  |  直到 17 年前
        1
  •  4
  •   Marc Gravell    17 年前

    这是问题的一部分吗?还是靠自己?

    SELECT ,你有:

    IF ([test])
    BEGIN
         [true branch]
    END
    ELSE
    BEGIN
        [false branch]
    END
    

    分支可以做任何事情,包括使用CTE等。

    CASE :

    SELECT ..., CASE WHEN Column1=x THEN [answer1]
                     ELSE [answer2] END, ...
    

    案例

        2
  •  0
  •   gbn    17 年前

    CTE适用于整个语句,不是独立的。它是较大SQL构造中的子句或子构造。

    IF EXISTS (SELECT * FROM table WHERE Column1 = x)
    BEGIN
        ;WITH cStuff AS
        (
            ...
        )
        SELECT 
            ...
        FROM
            tables and cStuff
    END
    ELSE
    BEGIN
        SELECT 
            ...
        FROM
            tables
    END
    

    ;WITH cStuff AS
    (
        ...
    )
    SELECT 
        ...
    FROM
        tables and cStuff
    WHERE
        column1 = x
    UNION ALL
    SELECT 
        ...
    FROM
        tables
    WHERE
        column1 <> x
    

    推荐文章