-1

列を含むテーブルがあります

[id],[StartsWith],[Length] ,[MinExt] ,[MaxExt],[isDID] ,[DeleteDigits] ,[AppendDigits]

208 ,     61     ,    5    ,  61000  ,  61999 ,   0    ,       2       ,   22058

209 ,     63     ,    5    ,  63000  ,  63999 ,   0    ,       2       ,  26518

ここで、ユーザーが 61205 という番号を送信した場合、MinExt と MaxExt の間をチェックして、その番号 (つまり 61205) がどの行に存在するかを確認する必要があるとします。

その後、番号の先頭から対応する deleteDigits に記載されている 61205 から x 桁を切り捨てる必要があります (この場合、2 桁が切り捨てられます)。切り捨て後、[appenddigits] 列の最後に 205 を追加する必要があります。22058205 のような完全な数になります。

内部クエリになるため、selectステートメントを使用してこれを行う必要があります。または誰かが何か他のことを提案できるなら、私はとても感謝しています.

4

2 に答える 2

0

質問で言及されているルックアップ テーブルの行数が少ない場合は、複数レベルの Case ステートメントを使用してこれを行うことができます。面倒に見えますが、他のコードに依存せずに完全に機能します。

このテーブルに多くの行が含まれる可能性がある場合は、SQL Server ユーザー定義関数を使用することをお勧めします。

于 2017-04-11T13:09:54.380 に答える