ホームページ >データベース >mysql チュートリアル >SQL Server で行内の NULL 値を前の非 NULL 値で埋める方法
連続する NULL 値を以前の既知の値の値に置き換える方法
問題:
行内の NULL 値を、最後の既知の値の値に置き換える必要があります。前の日付。たとえば、日付列に値「1」、「2」、「3」、「4」、「5」が含まれており、数値列に値「3」、「NULL」、「5」、「NULL」が含まれている場合、 、" および "NULL" の場合、NULL 値はそれぞれ "3"、"5"、および "5" に置き換える必要があります。
解決策 (SQL Server):
DECLARE @Table TABLE( ID INT, Val INT ) INSERT INTO @Table (ID,Val) SELECT 1, 3 INSERT INTO @Table (ID,Val) SELECT 2, NULL INSERT INTO @Table (ID,Val) SELECT 3, 5 INSERT INTO @Table (ID,Val) SELECT 4, NULL INSERT INTO @Table (ID,Val) SELECT 5, NULL INSERT INTO @Table (ID,Val) SELECT 6, 2 SELECT *, ISNULL(Val, (SELECT TOP 1 Val FROM @Table WHERE ID < t.ID AND Val IS NOT NULL ORDER BY ID DESC)) FROM @Table t
説明:
以上がSQL Server で行内の NULL 値を前の非 NULL 値で埋める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。