1

こんにちは、SQL に列があり、「.」を挿入する必要があります。最後の 2 文字の前。列は固定長ではありません。誰かが私がこれについて行くのを手伝ってもらえますか?

4

4 に答える 4

4

UPDATE と SUBSTRING でそれを行うことができます。

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
于 2013-11-06T15:34:37.383 に答える
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)
于 2013-11-06T15:35:23.837 に答える
1

次のようにsp_renameを使用できます。

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

これを複数の列に適用する必要がある場合は、substring メソッドを使用することをお勧めします。UPDATE列の1つだけでそれを行うのは実際には使用されません。

于 2013-11-06T15:35:31.437 に答える
1

質問はあまり明確ではありません。に挿入しようとしている場合は. before last 2 characters、関数column dataを使用できますSTUFF()

例:

Declare @s varchar(50) = '12345678'
Select Stuff(@s, Len(@s)-1, 0, '.')
--> 123456.78

テーブル クエリへの適用:

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

が 未満の場合 null 文字列が返されることに注意してください。Len(yourCol) 2

于 2013-11-06T16:07:56.353 に答える