Как удалить первый символ, если он является конкретным символом в SQL

Вопрос:В настоящее время у меня есть таблица Telephone, у нее есть записи вроде: 9073456789101 +773456789101 0773456789101 Что я хочу сделать, это удалить только 9 с начала всех записей, в которых есть 9, но оставить остальных такими, какими они есть. любая помощь будет принята с благодарностью. Лучший ответ: Хотя все остальные ответы, вероятно, также работают, я

Вопрос:

В настоящее время у меня есть таблица Telephone, у нее есть записи вроде:

9073456789101 +773456789101 0773456789101

Что я хочу сделать, это удалить только 9 с начала всех записей, в которых есть 9, но оставить остальных такими, какими они есть.

любая помощь будет принята с благодарностью.

Лучший ответ:

Хотя все остальные ответы, вероятно, также работают, я бы предложил попробовать STUFF, чтобы легко заменить часть строка.

UPDATE Telephone SET number = STUFF(number,1,1,») WHERE number LIKE ‘9%’

SQLFiddle DEMO

Ответ №1

Вот код и SQLFiddle

SELECT CASE WHEN substring(telephone_number, 1, 1) <> ‘9’ THEN telephone_number ELSE substring(telephone_number, 2, LEN(telephone_number)) END FROM Telephone Ответ №2Update Telephone set number = RIGHT(number,LEN(number)-1) WHERE number LIKE ‘9%’; Ответ №3UPDATE dbo.Telephone SET column_name = SUBSTRING(column_name, 2, 255) WHERE column_name LIKE ‘9%’; Ответ №4DECLARE @STR nvarchar(200) = ‘TEST’ SET @STR = STUFF(@STR,1,1,») PRINT @STR

Результат будет “EST”

Ответ №5

Вещь – отличная функция для этого. Однако использование его с оператором update с предложением where отлично, но что делать, если я делаю вставку, и мне нужны все строки, вставленные за один проход. Ниже приведен первый символ, если он является периодом, не использует оператор более медленного случая и преобразует нули в пустую строку.

DECLARE @Attachment varchar(6) = ‘.GIF’, @Attachment2 varchar(6) SELECT @Attachment2 = ISNULL(ISNULL(NULLIF(LEFT(@Attachment, 1), ‘.’), ») + STUFF(@Attachment, 1, 1, »), ») SELECT @Attachment2

Оцените статью
Добавить комментарий