0
ちょっとテーブルから欠損値を取得しようとしましたが、CTEと再帰なしでどのように取得できるかわかりません。 以下は私の現在のコードですが、前に述べたように再帰で動作します。テーブル内の欠損値を見つける方法
DROP TABLE #temp;
CREATE TABLE #temp (
val INT NULL
);
DECLARE @val AS INT = 1;
WHILE @val <= 10
BEGIN
INSERT #temp (val)
SELECT cast((RAND()*10) as int);
SET @val = @val + 1;
END
SELECT *
FROM #temp;
WITH CTE AS
(
SELECT nMin = MIN(t.val), MAX(t.val) as 'nMax'
FROM #temp t
UNION ALL
SELECT nMin + 1, nMax
FROM CTE
WHERE nMin < nMax
)
SELECT c.nMin
FROM CTE c
WHERE NOT EXISTS
(
SELECT val
FROM #temp
WHERE c.nMin = val
)