TSQL Поменять код телефона с +7499 на +7495 (вместо +7 может быть другой код) н

Проект таблицы Код преподавателя int Фамилия nchar(50)
Имя nchar(50)
Отчество nchar(50)
Стоимость часа decimal(18, 0)
Контактный телефон nvarchar(20)
Образование nchar(50)

Так же есть код который меняет 495 на 499

SELECT * 
    , result = IIF(SUBSTRING(Контактный_телефон,2,3)='499', STUFF(Контактный_телефон,2,3,'495'), Контактный телефон)
FROM Запрос2;  

Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

Это похоже на повторяющийся вопрос: TSQL Задание на выборку поменять код телефона в таблице с 499 на 495

SQL

-- DDL и образец вставки данных, начало
DECLARE @tbl TABLE  (ID INT IDENTITY(1,1) PRIMARY KEY, phone VARCHAR(20));
INSERT INTO @tbl (phone) VALUES
('8499 931-97-04'),
('8499 499-97-02'),
('8495 931-97-07'),
('+7499 499-97-18');
-- DDL и образец вставки данных, конец

SELECT * 
    , result = IIF(SUBSTRING(phone, 2 + pos, 3)='499', STUFF(phone, 2 + pos, 3, '495'), phone)
FROM @tbl
    CROSS APPLY (SELECT IIF(LEFT(phone,1)='+',1,0)) AS t(pos);

Результат

+----+-----------------+-----------------+
| ID |      phone      |     result      |
+----+-----------------+-----------------+
|  1 | 8499 931-97-04  | 8495 931-97-04  |
|  2 | 8499 499-97-02  | 8495 499-97-02  |
|  3 | 8495 931-97-07  | 8495 931-97-07  |
|  4 | +7499 499-97-18 | +7495 499-97-18 |
+----+-----------------+-----------------+
→ Ссылка