Некоторые основные правила:
Избавьтесь от квадратных скобок. В вашем случае они не нужны - даже в SQL Server. (При этом убедитесь, что вы никогда не используете зарезервированные слова или специальные символы в именах столбцов или таблиц).
Если вам нужно использовать специальные символы или зарезервированные слова (что я бы не рекомендовал), то используйте стандартные двойные кавычки (например, «GROUP»).
Но помните, что имена чувствительны к регистру: my_table
соответствует MY_TABLE
, но "my_table"
отличается от "MY_TABLE"
в соответствии со стандартом. Опять же, это может варьироваться в зависимости от СУБД и их конфигурации.
Оператор CAST является стандартным и работает на большинстве СУБД (хотя не все поддерживают приведение типов во всех возможных комбинациях).
convert () специфичен для SQL Server и должен быть заменен выражением CAST.
Старайтесь указывать значения в правильном типе данных, никогда не полагайтесь на неявное преобразование данных (поэтому не используйте «1» для числа). Хотя я не думаю, что приведение 1 к числовому () должно быть необходимо.
Обычно я также рекомендую использовать литералы ANSI (например, DATE '2011-03-14'
) для литералов DATE / TIMESTAMP, но SQL Server не поддерживает это. Так что это вам не очень поможет.