在SQL中转义部分字符串时遇到问题。例如:
SELECT TOP 10000 *
FROM experience
WHERE name IS
'AT&T'
在'AT'附近的错误语法附近说错误的语法。似乎它的问题与& - 逃避是否有任何一般规则?
还试过
SELECT TOP 10000 *
FROM experience
WHERE name Like
'AT&\T'
虽然没有给出任何结果(有结果可以出现),但仍有效。
答案 0 :(得分:2)
字符串文字中唯一需要转义的字符是单引号。 '
。通过将它们加倍而不是反斜杠来逃避。
SELECT 'O''Reilly'
在绝大多数情况下,您应该使用参数化查询,甚至不需要这样做。
要使用的正确运算符是=
SELECT TOP 10000 *
FROM experience
WHERE name = 'AT&T'
工作正常SQL Fiddle Demo
IS
仅与[NOT] NULL
反斜杠在字符串文字中唯一的特殊意义是,如果它在换行符之前立即作为行继续符。
PRINT 'This is all \
one line'
返回
这是一行