Неявное приведение при объединении полей разных типов - PullRequest
2 голосов
/ 20 января 2012

Я присоединяюсь к полю, состоящему из однозначных чисел, отформатированных с начальным 0, до другого, у которого нет начальных 0.Когда я понял это, я проверил свой запрос только для того, чтобы убедиться, что он действительно работает идеально.Затем я понял, что я сделал ... Я присоединился к полю nvarchar к полю int.Я бы подумал, что sql выдаст мне ошибку за это, но, видимо, он преобразует поле символов в поле int для меня.

Я понимаю, что это, вероятно, не очень хорошая практика, и я планирую явным образом привести его самсейчас, но мне просто любопытно, есть ли правила того, как SQL решает, какое поле использовать в этих ситуациях.Что может помешать преобразованию поля int в тип символа (в этом случае мой запрос больше не будет работать должным образом)?

1 Ответ

5 голосов
/ 20 января 2012

Действительно, есть правила.

CAST и CONVERT (Transact-SQL) , чтобы узнать, что можно преобразовать в что (раздел «Неявные преобразования»).

Приоритет типа данных (Transact-SQL) , чтобы узнать, что будет преобразовано во что, если не будет задан конкретный вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...