intデータ型のテーブルの列を更新する必要がありますが、更新に使用した他のテーブルの値はnvarcharです。もしそうなら、これが達成されるかどうか私に知らせてください。
3 に答える
2
それは次のようなものかもしれません:
update tablename
set t.column = convert(int, t2.column)
from tablename t
inner join secondtablename t2 on t.column = t2.column
where ISNUMERIC(t2.column) = 1
于 2012-05-17T13:16:38.443 に答える
0
CREATE TABLE #t
(
ID int IDENTITY(1,1),
Column1 int
)
CREATE TABLE #t1
(
ID int IDENTITY(1,1),
Column2 Varchar(50)
)
INSERT INTO #t(Column1)VALUES(1)
INSERT INTO #t(Column1)VALUES(2)
INSERT into #t1(Column2)values('Alpha Numeric')
INSERT into #t1(Column2)values('12')
UPDATE t
SET t.Column1 = t1.Column2
FROM #t t
INNER join #t1 t1 on t.ID = t1.ID
Where ISNUMERIC(t1.Column2) = 1
select * FROM #t
DROP TABLE #t
DROP TABLE #t1
于 2012-05-17T18:35:59.613 に答える
0
nvarchar 列のすべてのデータが数値である場合、次のことができるはずです。
update ATable
set intColumn = cast(o.chardata as int)
from ATable a
join OtherTable o on a.tableid=o.tableid
現在は、ISNUMERIC() 制約を使用して非数値データを処理するロジックを組み込むこともできます。
私はaFが私をパンチに打ち負かしたのを見ます。
于 2012-05-17T13:17:54.603 に答える