[Work Phone] (nvarchar) 列を含むテーブルがあります。このデータベースを使用するソフトウェアでは、ユーザーが任意の文字を入力できるため、多くの列に「555-555-5555 Ext. 1234 Bob Jones」のようなものが含まれていました。必要なのは数字だけで、Phone と Ext を別々の列に分割するつもりです。関数といくつかの他のことを実行した後、電話番号と内線番号だけになりました。すべてのスペースと文字が削除されています (例: 55555555551234)。
これを分割しようとしている方法では、最初にフィールド内の文字の総数 (私の例では14 ) を数えて拡張機能を取得し、その数を 10 減らします (内の文字の総数)電話番号(国番号を除く))。拡張子は 1 ~ 5 文字の間のどこにでもある可能性があるため、LEN() を使用してこのカウントを取得し、10 減らします。
SELECT RIGHT([Table].[Column], LEN([Table].[Column]) -10)
FROM [Table]
「無効な長さパラメーターが RIGHT 関数に渡されました」というメッセージが表示されます。
次のようなことをすると、問題が完全にはわかりません。
SELECT LEN([Table].[Column]) -10
SELECT LEN('55555555551234') -10
期待どおり、値 4 を取得します。
このパラメーターを RIGHT に渡して、必要なものを取得できるようにする適切な方法は何ですか?