1. ホーム
  2. sql-server-2008

[解決済み] LEFT または SUBSTRING 関数に渡された長さパラメータが無効です。

2022-03-01 18:30:57

質問

私はこれらの質問のいくつかを見てきましたが、役立つものを見つけたことがありません! 私は郵便番号の最初の部分のみを選択しようとしており、基本的にスペース以降の部分は無視されます。

SUBSTRING(PostCode, 1 , CHARINDEX(' ', PostCode ) -1)

しかし、LEFTまたはSUBSTRING関数に渡された長さのパラメータが無効ですと表示されます。ヌルやブランクはないのですが、最初の部分しかないものがあります。これはエラーの原因なのでしょうか、もしそうなら回避策は?

解決方法は?

それは、以下の場合にのみ発生します。 PostCode にはスペースがありません。 のすべてが空白になるような条件付けを追加することができます。 PostCode は、以下のようにスペースが見つからない場合に取得されます。

select SUBSTRING(PostCode, 1 ,
case when  CHARINDEX(' ', PostCode ) = 0 then LEN(PostCode) 
else CHARINDEX(' ', PostCode) -1 end)