w3n*_*n2u 10 sql sql-server sql-server-2008
我目前有一个表,Telephone它有如下条目:
9073456789101
+773456789101
0773456789101
Run Code Online (Sandbox Code Playgroud)
我想要做的是从所有具有9的条目的开头处仅删除9,但保留其他条目.
任何帮助将不胜感激.
Nen*_*vic 19
虽然所有其他答案可能也有效,但我建议尝试使用STUFF函数来轻松替换字符串的一部分.
UPDATE Telephone
SET number = STUFF(number,1,1,'')
WHERE number LIKE '9%'
Run Code Online (Sandbox Code Playgroud)
这是代码和一个SQLFiddle
SELECT CASE
WHEN substring(telephone_number, 1, 1) <> '9'
THEN telephone_number
ELSE substring(telephone_number, 2, LEN(telephone_number))
END
FROM Telephone
Run Code Online (Sandbox Code Playgroud)
小智 5
我最近使用 RIGHT()、LEN() 和 PATINDEX() 的组合解决了类似的问题。当 PATINDEX 找到第一个字符为 9 时,将返回整数 1,否则返回 0。此方法允许一次返回所有记录,无需使用 CASE WHEN 语句。
SELECT
RIGHT(number, LEN(number) - PATINDEX('9%', number))
FROM Telephone
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
52479 次 |
| 最近记录: |