我现在有一个表Telephone
它有像以下项:如何删除第一个字符,如果它是在SQL特定的字符
9073456789101
+773456789101
0773456789101
我想要做的就是从一开始就只删除9所有的参赛作品中都有9个,但保留其他参赛作品。
任何帮助将不胜感激。
我现在有一个表Telephone
它有像以下项:如何删除第一个字符,如果它是在SQL特定的字符
9073456789101
+773456789101
0773456789101
我想要做的就是从一开始就只删除9所有的参赛作品中都有9个,但保留其他参赛作品。
任何帮助将不胜感激。
其它所有的答案很可能也是工作,我建议尝试使用STUFF
功能可轻松更换的一部分串。
UPDATE Telephone
SET number = STUFF(number,1,1,'')
WHERE number LIKE '9%'
UPDATE dbo.Telephone
SET column_name = SUBSTRING(column_name, 2, 255)
WHERE column_name LIKE '9%';
Update Telephone set number = RIGHT(number,LEN(number)-1) WHERE number LIKE '9%';
对我来说,确定长度似乎是浪费。 –
DECLARE @STR nvarchar(200) = 'TEST'
SET @STR = STUFF(@STR,1,1,'')
PRINT @STR
结果将是 “EST”
东西是一个很好的功能。但是,将它与带有where子句的更新语句一起使用是非常好的,但是如果我正在执行插入操作,并且我需要一次插入所有行。下面的内容将删除第一个字符,如果它是一个句点,不使用较慢的case语句,并将nulls转换为空字符串。
DECLARE @Attachment varchar(6) = '.GIF',
@Attachment2 varchar(6)
SELECT
@Attachment2 = ISNULL(ISNULL(NULLIF(LEFT(@Attachment, 1), '.'), '') + STUFF(@Attachment, 1, 1, ''), '')
SELECT
@Attachment2
我更喜欢RIGHT + LEN或STUFF方法,它假设长度永远不是一个好主意。 – Aki
@Aki你只需要使用列名永远不会超过的长度 - 在这种情况下,你怀疑你的电话号码需要超过255个字符,但也许你有不同的电话号码格式,我不知道的。我不喜欢RIGHT + LEN,因为参加LEN对我来说似乎是一种浪费和不必要的计算。 –