10

テーブルコンテンツの次の例があります

+ Column1 | Column2 | Column3 +
+---------|---------|---------+
+   1     | val.txt |         +
+   2     | test.xls|         +
+   3     | abc.dwg |         +
+   4     | y.txt   |         +
+---------|---------|---------+

Column3からの情報で更新したいColumn2ということは、(この場合) から拡張子を抽出してColumn2に入れたいということですColumn3

結果を次のようにしたい

+ Column1 | Column2 | Column3 +
+---------|---------|---------+
+   1     | val.txt |   .txt  +
+   2     | test.xls|   .xls  +
+   3     | abc.dwg |   .dwg  +
+   4     | y.txt   |   .txt  +
+---------|---------|---------+

UPDATE声明でそれを行う方法は?

拡張子を抽出する方法を知っています:

SUBSTRING(Column2, LEN(Column2)-3, LEN(Column2)) AS Extension
4

3 に答える 3

20

これはどう:

UPDATE dbo.YourTable
SET Column3 = SUBSTRING(Column2, LEN(Column2)-3, LEN(Column2)) 

必要に応じWHEREて、更新される行を制限する句を含めることもできます。

UPDATE dbo.YourTable
SET Column3 = SUBSTRING(Column2, LEN(Column2)-3, LEN(Column2)) 
WHERE Column3 IS NULL

またはそのようなもの。

于 2012-12-18T08:42:43.273 に答える
1

これを試して

 UPDATE dbo.YourTable
    SET Column3 =SUBSTRING(Column2,CHARINDEX('.',Column2,0),(LEN(Column2)-CHARINDEX('.',Column2,0)+1))
于 2012-12-18T08:51:21.983 に答える