Есть ли стандарт SQL, чтобы избежать имени столбца? Если не то, что работает для mysql и sqlite? он также работает для sqlserver?
SQL для исключения имен столбцов?
Ответ 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]