Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.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,我想编写一个SQL脚本,它可以根据某个数字连接逗号之类的字符 范例 UPDATE Table1 SET column1 = column1 + '.' WHERE LEN(column1) = 2 UPDATE Table1 SET column1 = column1 + '..' WHERE LEN(column1) = 3 UPDATE Table1 SET column1 = column1 + '...' WHERE LEN(column1) = 4 我想自动渲染这个脚本 谢

我想编写一个SQL脚本,它可以根据某个数字连接逗号之类的字符

范例

UPDATE Table1 
SET column1 = column1 + '.'
WHERE LEN(column1) = 2

UPDATE Table1 
SET column1 = column1 + '..'
WHERE LEN(column1) = 3

UPDATE Table1 
SET column1 = column1 + '...'
WHERE LEN(column1) = 4
我想自动渲染这个脚本


谢谢。

此查询为第1列中长度为3的所有值添加了3个点“.”

declare @chr varchar(1) = '.'
declare @len int = 3

UPDATE Table1 
SET column1 = column1 + replicate(@chr, LEN(column1))
WHERE LEN(column1) = @len -- where clause is optional

如果没有
where
,查询将更新所有行并添加
LEN(column1)
dots

这将生成更新

SELECT 
   'UPDATE Table1 SET column1 = column1 + ''' + REPLICATE('.', LEN(column1) -1) + ''' WHERE LEN(column1) = ' + CONVERT(VARCHAR, LEN(column1))
FROM 
   Table1
WHERE
   LEN(column1) > 1
GROUP BY LEN(column1)

这些是点(
),不是逗号(
)。。。。这个问题仍然令人困惑和不清楚……非常感谢mutch M.ASh,我想让它看起来像一个复制函数