TSQL Where子句“搜索条件”的语法是否不正确?

FooUser

不应该是这样的:

WHERE 1=2 and 2=3, 1=1

可以用这种语法吗?

https://msdn.microsoft.com/zh-CN/library/ms173545.aspx

    <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 
    | CONTAINS 
  ( { column | * } , '<contains_search_condition>' ) 
    | FREETEXT ( { column | * } , 'freetext_string' ) 
    | expression [ NOT ] IN ( subquery | expression [ ,...n ] ) 
    | expression { = | < > | ! = | > | > = | ! > | < | < = | ! < } 
  { ALL | SOME | ANY} ( subquery ) 
    | EXISTS ( subquery )     } 

编辑:这WHERE 1=2 and 2=3, 1=1应该是WHERE 1=2 and 2=3, and 1=1感谢lad2025提供的图表。

卢卡斯·索兹达(Lukasz Szozda)

不,这是不允许的。请参阅人类可读的图表:

搜索条件

在此处输入图片说明

谓词 在此处输入图片说明

根据语法约定

[,... n]

表示前一项可以重复n次。出现的内容以逗号分隔。

[... n]

表示前一项可以重复n次。出现的内容由空格分隔。

我认为应该[...n]不允许使用逗号,例如:

SELECT '1' AS val
WHERE 1=2 AND 2=2,AND 3=3

产生:

','附近的语法不正确。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

'+'附近的语法不正确-SQL / TSQL

来自分类Dev

TSQL在','附近合并不正确的语法

来自分类Dev

TSQL条件IN子句

来自分类Dev

TSQL XQUERY 问题 - 不确定是我的 XQUERY 语法还是格式不正确的 XML 问题

来自分类Dev

TSQL Pivot Sum Function结果不正确

来自分类Dev

TSQL搜索日期范围

来自分类Dev

TSQL:条件查询

来自分类Dev

TSQL:条件查询

来自分类Dev

TSQL 条件选择语句

来自分类Dev

tsql避免where子句中的错误

来自分类Dev

正确的TSQL查询语法以比较日期

来自分类Dev

TSQL 语法错误:缺少“if”

来自分类Dev

TSQL:按查询条件分组

来自分类Dev

检查排名是否相同 - TSQL

来自分类Dev

TSQL中基于输入参数的where条件

来自分类Dev

TSQL:静态变量与where子句中的计算

来自分类Dev

TSQL是否可以跳过INNER JOIN子句中函数的执行?

来自分类Dev

Tsql IF ... CASE返回语法错误

来自分类Dev

TSQL存储过程语法错误

来自分类Dev

CTE分区未返回正确的行号-TSQL

来自分类Dev

根据TSQL中的某些条件连接字段

来自分类Dev

TSQL,获取条件 X 的 ParentId 的子记录

来自分类Dev

TSQL NOT运算符在where语句中

来自分类Dev

Tsql使用WHERE对ORDER BY进行排序

来自分类Dev

TSQL - JOIN 谓词顺序是否重要

来自分类Dev

带有INSERT语句的WHERE子句,在WHERE处有“不正确的语法”,并且无论记录是否存在都在运行IF NOT EXISTS

来自分类Dev

将GROUP_CONCAT与where子句条件一起使用时,结果不正确

来自分类Dev

TSQL限制记录,其中HAVING子句中count()= 1

来自分类Dev

TSQL-IN子句返回空时的备用结果集