逻辑表达式和标量表达式是什么意思?举个例子啊谢谢

解决方案 »

  1.   

    and;or;…… 逻辑表达
    =;!=;…… 关系表达
      

  2.   

    or and只是逻辑运算符吧?
      

  3.   

    我的理解是这样select * from tb where id=1 and type = 'A'标量表达式 id=1 type = 'A'
    逻辑表达式 id=1 and type = 'A'
      

  4.   

    逻辑表达式,指计算结果是一个TRUE/FALSE/UNKNOWN的逻辑值,可以放在IF、CASE WHEN、WHERE、ON、HAVING之后或CHECK约束的定义中。
    如:
    1 = 1
    column IS NULL
    id = 1 AND type = 'A'标量表达式,指计算结果是一个特定数据类型的标量值,可以赋值给一个变量,或与一个变量或字段相比较(比较后返回一个逻辑表达式)。
    如:
    0
    0x30394161
    'abcdefg'
    SUBSTRING(string_col,3,5)
    REPLACE(string_col,'abc','def')
    price * amount / total_price
    (SELECT TOP(1) id FROM [table])
    (SELECT COUNT(*) FROM [table])表值表达式,指计算结果包含多行或多列的标量值,可用于INSERT、EXISTS、IN(只允许包含一列)子句。
    如:
    SELECT * FROM [table]
      

  5.   

    比如联机丛书中搜索条件 (Transact-SQL) 一节的BNF语法说明。< search_condition > ::=
        { [ NOT ] <predicate> | ( <search_condition> ) }
        [ { AND | OR } [ NOT ] { <predicate> | ( <search_condition> ) } ]
    [ ,...n ]
    <predicate> ::=
        { expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } expression
        | string_expression [ NOT ] LIKE string_expression [ ESCAPE 'escape_character' ]
        | expression [ NOT ] BETWEEN expression AND expression
        | expression IS [ NOT ] NULL
        | expression [ NOT ] IN ( subquery | expression [ ,...n ] )
        | expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } { ALL | SOME | ANY} ( subquery )
        | EXISTS ( subquery )     }
        | CONTAINS ( { column | * } , '< contains_search_condition >' )
        | FREETEXT ( { column | * } , 'freetext_string' )其中:
    predicate即逻辑表达式;
    expression即标量表达式;
    subquery即表值表达式。