在sql列的最后两个字符之前插入句点

在sql列的最后两个字符之前插入句点,sql,sql-server,Sql,Sql Server,您好,我在sql中有一列,我需要在最后两个字符前插入一个“.”。该列不是固定长度的。有人能帮我做这件事吗 您可以通过更新和子字符串来完成 UPDATE table SET column = (SELECT SUBSTRING(column, 1, LEN(column)-2) + '.' + SUBSTRING(column, LEN(column)-1, LEN(column)) 如果要检查查询将对您的列执行什么操作,只需使用: S

您好,我在sql中有一列,我需要在最后两个字符前插入一个“.”。该列不是固定长度的。有人能帮我做这件事吗

您可以通过更新和子字符串来完成

UPDATE table
SET column = (SELECT SUBSTRING(column, 1, LEN(column)-2) 
              + '.' 
              + SUBSTRING(column, LEN(column)-1, LEN(column))
如果要检查查询将对您的列执行什么操作,只需使用:

SELECT 
    SUBSTRING(column, 1, LEN(column)-2) 
    + '.' 
    + SUBSTRING(column, LEN(column)-1, LEN(column))
FROM table

您可以通过更新和子字符串来完成

UPDATE table
SET column = (SELECT SUBSTRING(column, 1, LEN(column)-2) 
              + '.' 
              + SUBSTRING(column, LEN(column)-1, LEN(column))
如果要检查查询将对您的列执行什么操作,只需使用:

SELECT 
    SUBSTRING(column, 1, LEN(column)-2) 
    + '.' 
    + SUBSTRING(column, LEN(column)-1, LEN(column))
FROM table

看起来很凌乱,但这应该可以做到:

SELECT LEFT(COL_NAME, LEN(COL_NAME)-1)+'.'+RIGHT(COL_NAME,1)
FROM Table
或者,如果您想更新数据库中的值,而不仅仅是输出

Update Table 
SET COL_NAME = LEFT(COL_NAME, LEN(COL_NAME)-1)+'.'+RIGHT(COL_NAME,1)

看起来很凌乱,但这应该可以做到:

SELECT LEFT(COL_NAME, LEN(COL_NAME)-1)+'.'+RIGHT(COL_NAME,1)
FROM Table
或者,如果您想更新数据库中的值,而不仅仅是输出

Update Table 
SET COL_NAME = LEFT(COL_NAME, LEN(COL_NAME)-1)+'.'+RIGHT(COL_NAME,1)
您可以这样使用:

EXEC sp_rename 'dbo.DatabaseName.ColumnName', 'ColumnNa.me', 'COLUMN';
如果需要将其应用于多个列,那么我建议使用substring方法。在一列上只更新一次,没有实际用途。

您可以这样使用:

EXEC sp_rename 'dbo.DatabaseName.ColumnName', 'ColumnNa.me', 'COLUMN';

如果需要将其应用于多个列,那么我建议使用substring方法。在一个专栏上只更新一次没有实际意义。

这个问题不是很清楚。如果您试图插入
。在最后2个字符进入
列数据之前,可以使用
STUFF()
函数

例如:

Declare @s varchar(50) = '12345678'
Select Stuff(@s, Len(@s)-1, 0, '.')
--> 123456.78
应用于表查询:

Select Stuff(yourCol, Len(yourCol)-1, 0, '.')
From yourTable

请注意,如果
Len(yourCol)
小于
2
,将返回一个空字符串。

问题不是很清楚。如果您试图插入
。在最后2个字符进入
列数据之前,可以使用
STUFF()
函数

例如:

Declare @s varchar(50) = '12345678'
Select Stuff(@s, Len(@s)-1, 0, '.')
--> 123456.78
应用于表查询:

Select Stuff(yourCol, Len(yourCol)-1, 0, '.')
From yourTable

请注意,如果
Len(yourCol)
小于
2
,将返回一个空字符串。

我不确定,但我认为op希望修改列中的值,而不是列的名称。好吧,他从来没有提到元组或行-仅列。至于解释,我想…我不确定,但我认为op希望修改列中的值,而不是列的名称。嗯,他从来没有提到元组或行-仅列。根据解释,我想…您是否正在尝试更改列名称或列中的数据?是否正在尝试更改列名称或列中的数据?