Как объединить цифру в столбце без усечения? - PullRequest
0 голосов
/ 03 декабря 2018

Использование SQL Server Management Studio.

Итак, у меня проблема.Мне нужно обновить информацию о номерах мобильных телефонов Колонки, которые у меня есть.Сейчас у меня есть эта таблица:

Patients | City_PhoneCode | CellPhone_Number
---------+----------------+-----------------
Mark A.              86           8688903442
Ally B.              55           5577564553

Обратите внимание, что код City_PhoneCode фактически соединен с остальной частью строки в Cell_PhoneNumber.Мне нужно поставить номер 9 после PhoneCode в столбце CellPone_Number, который будет на 3-м месте.Я попытался объединить цифру в третьей позиции, но я получаю сообщение об ошибке «Строка или двоичные данные будут обрезаны».

Я пробовал этот запрос:

Update Patient
Set CellPhone_Number = Concat(City_PhoneCode, '9', CellPhone_Number)

Но это не удалось;

Я пытался удалить первые две цифры, но конечный результат всегда один и тот же.Я искал его и обнаружил, что это связано с тем, что тип данных не может содержать значения, которые я пытался дать, поскольку значения могут быть слишком большими для типа данных.

Я не могу реально изменить тип данных, поскольку только DB_Admin имеет это разрешение в данный момент ...

Есть ли способ исправить эту проблему?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Кажется, что ваш столбец может содержать не более 10 символов, поэтому это невозможно без изменения определения таблицы, поскольку даже после удаления первых двух цифр вы добавите еще три символа, что составит 11 символов.Одним из обходных путей может быть удаление 2 символов с начала CellPhone_Number и замена его на 9, и в любом запросе вы можете использовать concat (City_PhoneCode, CellPhone_Number).Финальная таблица будет выглядеть следующим образом.

Patients | City_PhoneCode | CellPhone_Number
---------+----------------+-----------------
Mark A.              86           988903442
Ally B.              55           977564553

, и в следующем запросе вы можете использовать concat(City_PhoneCode,CellPhone_Number) вместо CellPhone_Number.

0 голосов
/ 03 декабря 2018

Вместо удаления первых ДВУХ цифр вы должны удалить первые ТРИ и конкатенировать с помощью City_PhoneCode + '9'

Но для действительно элегантного решения вы должны взглянуть на функцию STUFF * в SQL Server .Вы можете использовать его, чтобы в основном сказать SQL Server «Заменить третий символ в строке на« 9 »»

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