Я смотрю на синтаксис SQL, в частности, строковый литерал .
<character string literal> ::=
[ <introducer> <character set specification> ]
<quote> [ <character representation> ... ] <quote>
[ { <separator> <quote> [ <character representation> ... ] <quote> }... ]
Игнорирование части [ <introducer> <character set specification> ]
означает ли это один или несколько <quote> [ <character representation> ... ] <quote>
s, разделенные <separator>
?
Если это так, значит ли это, что 'hello' 'world'
должен быть проанализирован как один <character string literal>
?
Для запроса SELECT 'hello' 'world'
, Microsoft SQL Server 2005возвращает:
+-------+
| world |
+-------+
| hello |
+-------+
и MySQL 5.0 возвращает:
+------------+
| hello |
+------------+
| helloworld |
+------------+
Я понимаю, что каждый вариант SQL отличается, и что они не все соответствуют стандарту.Я просто пытаюсь определить, правильно ли я интерпретирую БНФ.Спасибо.