我現在有一個表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對我來說似乎是一種浪費和不必要的計算。 –