Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql查询,在带有字符和数字的字符串之间添加零_Sql_Sql Server - Fatal编程技术网

Sql查询,在带有字符和数字的字符串之间添加零

Sql查询,在带有字符和数字的字符串之间添加零,sql,sql-server,Sql,Sql Server,通过在id中添加包含字母和数字的零来更新id的通用sql查询是什么?在字符和数字00之间需要填充,例如QTX23675应变成QTX0023675 UPDATE Table SET QID = 'QTX0023675' WHERE QID='QTX23675'; 有许多记录需要更新,我发现查询的前导为零。 尝试拆分字符串。在大多数数据库中,您可以执行以下操作: UPDATE Table SET QID = CONCAT(LEFT('QTX0023675', 3), '00

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

UPDATE Table
    SET QID = 'QTX0023675'
    WHERE QID='QTX23675';
有许多记录需要更新,我发现查询的前导为零。
尝试拆分字符串。

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

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

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

尝试此方法以使结果动态化

UPDATE TABLE SET QID= STUFF(QID,PATINDEX('%[0-9]%',QID),0,'00')
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
结果如下


这个问题不是很清楚……字符串格式总是一样的吗?i、 e.总是需要在字符串的第4位插入,还是会有所变化?你总是有3个字母作为后缀吗?正如@MisterPositive指出的,问题并不清楚。您尚未定义模式,因此我们不知道需要在何处进行拆分。你能有一个有8个文本值的字符串,这样它就可以在末尾加上2个零吗?你能不能有一个没有文字的,这样就可以在前面加上零?最终结果总是10个字符吗?是否需要添加2个以上的零?未知数太多。请用您正在使用的数据库标记您的问题。谢谢您的回答。我正在使用SQL server。模式总是相同的:3个字符5个数字,并且总是需要插入到字符串中的位置4。不过,您可以使用这个。为了安全起见,如果有任何模式不匹配的话,谢谢你的回答。