こんにちは皆さん、SQL テーブルで数値が属する範囲を決定するためにクエリを作成する必要があります。結果が得られません。回避策を見つけましたが、これは最善の方法ではないと思います。以下は、私がやろうとしていることの例です。
-- Creando temporal
CREATE TABLE #TMP
(
RangeID INT
,InitialValue INT NULL
,FinalValue INT NULL
)
-- Insertar valores
INSERT INTO #TMP
( RangeID, InitialValue, FinalValue )
VALUES
( 1, 100, 200 )
,( 2, 201, 300 )
,( 3, 301, NULL )
-- Verificando temporal
SELECT * FROM #TMP
-- Verificando los rangos
SELECT
*
FROM
#TMP
WHERE
301 between InitialValue
AND FinalValue
--RETURNS NOTHING
SELECT
*
FROM
#TMP
WHERE
301 between InitialValue
AND isnull(FinalValue,301+1)
--RETURNS THE DESIRED RESULT
-- Borrando temporal
DROP TABLE #TMP
問題は、最終値がnullの場合、isnullを使用して値を検証して割り当てる必要があることです。
この問題にアプローチする他の方法はありますか。