SQL для исключения имен столбцов?

Есть ли стандарт SQL, чтобы избежать имени столбца? Если не то, что работает для mysql и sqlite? он также работает для sqlserver?

Ответ 1

Стандарт SQL-99 указывает, что двойная кавычка (") используется для разграничения идентификаторов.

Oracle, PostgreSQL, MySQL, MSSQL и SQlite поддерживают "как разделитель идентификаторов (хотя они не все используют" как "по умолчанию" - например, вы должны запускать MySQL в ANSI mode, и SQL Server поддерживает его только тогда, когда QUOTED_IDENTIFIER есть ON.)

Ответ 2

Согласно SQLite,

  • 'foo' - строка SQL
  • "foo" - это идентификатор SQL (столбец/таблица/etc)
  • [foo] - это идентификатор в MS SQL
  • `foo` - это идентификатор в MySQL

Для квалифицированных имен синтаксис: "t"."foo" или [t].[foo] и т.д.

MySQL поддерживает стандартный "foo", когда включена опция ANSI_QUOTES.

Ответ 3

Для MS SQL используйте [и]

SELECT [COLUMN], [COLUMN 2] FROM [TABLE]

Ответ 4

Для MySQL используйте тики `.

Например:

SELECT `column`, `column2` FROM `table`

Ответ 5

Для DBASE/DBF используйте [ и ]

SELECT [DATE], [TIME], [ANY_OTHER_TO_BE_ESCAPED_COLUMN] FROM [TABLE]