Как написать имя столбца с точкой («.») в предложении SELECT?

#sql #sql-server-2008

#sql #sql-server-2008

Вопрос:

Я пытаюсь написать имя столбца, используя «.», но безуспешно

пример:

 SELECT PrmTable.Value = MAX(Value)
FROM TempTable
  

или

 SELECT MAX(Value) AS PrmTable.Value
FROM TempTable
  

Есть идеи?

Комментарии:

1. попробуйте заключить его в двойные кавычки — ВЫБЕРИТЕ MAX (Значение) КАК «PrmTable. Значение»

Ответ №1:

Просто заключите его в квадратные скобки, и это сработает

например

 SELECT MAX(Value) AS [PrmTable.Value]
FROM TempTable
  

Ответ №2:

Я бы не рекомендовал вам использовать имена полей, которые всегда требуют, чтобы вы заключали имя в квадратные скобки, это становится проблемой.

Также точка используется в SQL Server для обозначения разделителей имен схемы и базы данных. Используя ваше имя поля, полное имя поля становится:

 [DatabaseName].[SchemaName].[TableName].[FieldName.WithPeriod]
  

Это просто выглядит странно и, вероятно, сбило бы с толку другие базы данных. Используйте подчеркивание для разделения слов в именах полей, это гораздо более распространенный стиль:

 [DatabaseName].[SchemaName].[TableName].[FieldName_WithUnderscore]
  

Ответ №3:

 SELECT [PrmTable.Value] = MAX(Value)

FROM TempTable

or

SELECT MAX(Value) AS [PrmTable.Value]