MyTable.SSN
ある列 からデータを取得し、それを同じテーブル内の別の列にコピーしようとしていますがMyTable.SSNWithDashes
、書式が異なるだけです。MyTable.SSN
正確に 9 桁でない場合は、処理する必要はありません。
私はこれを試しました:
IF( SELECT LEN( [SSN] ) FROM [MyTable] ) = 9
UPDATE [MyTable] SET [SSNWithDashes] = LEFT( [SSN], 3 ) + '-' + SUBSTRING( [SSN], 4, 2 ) + '-' + RIGHT( [SSN], 4 )
ELSE
UPDATE [MyTable] SET [SSNWithDashes] = NULL
これは機能しますが、エラーがスローされます。
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
警告が何を言っているのかは理解していますが、これを別の方法で行う方法がよくわかりません。
これをリファクタリングしてその警告を削除するにはどうすればよいですか (そしておそらく少しきれいに読むことができますか)?