Есть ли стандарт 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]