[]和'之间的实际区别是什么? '我问,因为当我写这个查询时,我无法写
SELECT *
FROM 'Order Details'
WHERE OrderID = 11077
唯一的可能性是
SELECT *
FROM [Order Details]
WHERE OrderID = 11077
但我可以重命名AS 'some name for column'
为什么' '有时是错的吗?
我正在使用Northwind示例数据库。
答案 0 :(得分:2)
单引号表示字符串文字,而方括号([..]
- SQL Server / T-SQL特定)或双引号(ANSI / ISO SQL标准)可以用空格("Order Items"
)包含表(或列)名称,或者用数字开头的名称(而不是像[1998 Sales]
那样的字符)。
所以你也应该能够使用它:
SELECT *
FROM "Order Details"
WHERE OrderID = 11077
答案 1 :(得分:0)
避免使用表/列名称中的spacess。需要括号,当表名中有空格时,Sqlserver会认为它是2个不同的单词。
当我们使用保留字或字符串作为列/表名时,我们需要方括号。
分隔标识符
用双引号(")或括号([])括起来。符合标识符格式规则的标识符可能会也可能不会被分隔。
请看同一个问题的答案:
What is the use of the square brackets [] in sql statements?
答案 2 :(得分:0)
这是示例
select [first Name], [last name] from tablename where [last name]='name'
[]
用于在列中的两个单词之间添加空格,如上面的[last name]
和
''
用于字符串或以'name'
之类的字符串执行查询,并在参数中使用完整查询,如
declare @perameter1
set @perameter= ('select * from tablename where name like =''name''')