假设我想使用这样的代码:
select 'Response Status Code', 'Client Response Status Code'
from TC_Sessions (NOLOCK)
WHERE StartDate BETWEEN '05-15-2012' AND '06-01-2012'
AND SupplyID = 3367
如何在SQL Server中执行此操作?
谢谢你!答案 0 :(得分:32)
select [Response Status Code], [Client Response Status Code]
from TC_Sessions (NOLOCK)
WHERE StartDate BETWEEN '05-15-2012' AND '06-01-2012'
AND SupplyID = 3367
用方括号包裹名称。
但是,如果可能的话,最好避免使用名称中的空格。它只是为你创造了更多的工作......
答案 1 :(得分:4)
select
[Response Status Code],
[Client Response Status Code]
from TC_Sessions (NOLOCK)
WHERE StartDate BETWEEN '05-15-2012' AND '06-01-2012'
AND SupplyID = 3367
这也适用于表格名称,如果您的字段名称是保留字或类似名称,例如[Order]
或[Month]
更好的做法是完全避免这些......
答案 2 :(得分:4)
我理解需要创建包含空格的列,特别是对于用户将与之交互的报表,将列标题标记为“Client_Response_Status_Code”并不是非常用户友好。
当然以前的答案在技术上都是正确的,但我建议而不是在名称中创建带空格的列,创建视图并改变列名...
例如:
create view TC_Sessions_Report as
select response_status_code AS [Response State Code],
client_response_status_code as [Client Response Status Code]
...
通过这种方式,您无需在代码中的任何位置处理这些“友好”列名称,但在需要使用友好列名称的情况下,您可以使用该视图...
答案 3 :(得分:1)
通常在sql中你不这样做。你做响应status_code,如果你必须使用空格我会尝试用\或使用[响应状态代码]或其他东西逃避它们
答案 4 :(得分:0)
您可以使用包含空格的列,但通常可以避免使用空格。您需要将列包装在括号中以选择它:
select [Response Status Code], [Client Response Status Code]