TSQL Задание на выборку поменять код телефона в таблице с 499 на 495

Replace не работает как надо , так как если в телефоне будет еще 495 он поменяет и его


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

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

Так как "Минимальный воспроизводимый пример" не предоставлен, стреляю с бедра.

SQL

-- DDL and sample data population, start
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');
-- DDL and sample data population, end

SELECT * 
    , result = IIF(SUBSTRING(phone,2,3)='499', STUFF(phone,2,3,'495'), phone)
FROM @tbl;

Результат

+----+----------------+----------------+
| 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 |
+----+----------------+----------------+
→ Ссылка