小弟新手 各位高人能否介绍几本sql的书 小弟对在sql语句中使用过程控制语句如if,when等不太了解 谢谢

解决方案 »

  1.   

    比如在联机丛书中查IF就有:语法
    IF Boolean_expression { sql_statement | statement_block } 
    [
        ELSE
        { sql_statement | statement_block } ]参数
    Boolean_expression返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,必须用圆括号将 SELECT 语句括起来。{sql_statement | statement_block}是任何有效的 Transact-SQL 语句或以语句块定义的语句分组。若要定义语句块(批处理),采用控制流语言关键字 BEGIN 和 END。虽然所有的 Transact-SQL 语句在 BEGIN...END 块内都有效,但有些 Transact-SQL 语句不应组合在同一个批处理(语句块)中。结果类型
    Boolean示例
    当至少一本书满足这些条件时,这个示例会给出价格在 $10 与 $20 之间的传统烹调书的列表。否则,SQL Server 会给出一条信息,说明没有书满足这个条件,并生成价格低于 $10 的传统烹调书的列表。USE pubs
    GO
    DECLARE @msg varchar(255)
    IF (SELECT COUNT(price)
       FROM titles 
       WHERE title_id LIKE 'TC%' AND price BETWEEN 10 AND 20) > 0
       
       BEGIN
         SET NOCOUNT ON
         SET @msg = 'There are several books that are a good value between $10 and $20. These books are: '
             PRINT @msg
          SELECT title 
         FROM titles 
         WHERE title_id LIKE 'TC%' AND price BETWEEN 10 AND 20
       END
    ELSE
       BEGIN
         SET NOCOUNT ON
         SET @msg = 'There are no books between $10 and $20. You might consider the following books that are under $10.'
             PRINT @msg
         SELECT title 
         FROM titles 
         WHERE title_id LIKE 'TC%' AND price < 10       
       END下面是结果集:There are several books that are a good value between $10 and $20. These books are: 
    title                                                                   
    ------------------------------------------------------------------------
    Fifty Years in Buckingham Palace Kitchens
    Sushi, Anyone?(2 row(s) affected)
      

  2.   

    是的.联机帮助就可以了.不过有些应用难点就上CSDN问了