Sql查询在字符串与字符和数字之间添加零

时间:2017-11-13 13:58:07

标签: sql sql-server

通过在id中添加零来更新id的通用sql查询是什么。包含字母和数字?在字符和数字00之间需要填充,例如QTX23675应变为QTX0023675 ​​

UPDATE Table
    SET QID = 'QTX0023675'
    WHERE QID='QTX23675';

有许多记录需要更新,我发现带有前导零的查询。 尝试拆分字符串。

3 个答案:

答案 0 :(得分:2)

在大多数数据库中,您可以执行以下操作:

UPDATE Table
    SET QID = CONCAT(LEFT('QTX0023675', 3), '00', RIGHT('QTX0023675', 5))
    WHERE QID LIKE '________';

在任何给定的数据库中,可能会有一些更简单的方法,但想法是一样的。

答案 1 :(得分:0)

UPDATE TABLE SET QID= STUFF(QID,PATINDEX('%[0-9]%',QID),0,'00')

答案 2 :(得分:0)

尝试此操作以使结果动态

WITH CTE
AS
(
    SELECT Val = 'XTP231'
)
SELECT 
    *,
    NewVal = SUBSTRING(Val,1,PATINDEX('%[0-9]%',Val)-1)+'00'+SUBSTRING(Val,PATINDEX('%[0-9]%',Val),LEN(Val))
    FROM CTE

输出如下

Sample Result