だから私は自分がこのようなことをしていることに気づきました:
SELECT
Foo =
CASE
WHEN a.Foo IS NULL THEN (SELECT x.Foo FROM x WHERE x.Id = a.Id)
ELSE a.Foo
END,
Bar =
CASE
WHEN a.Bar IS NULL THEN (SELECT x.Bar FROM x WHERE x.Id = a.Id)
ELSE a.Bar
END,
Alice =
CASE
WHEN a.Alice IS NULL THEN (SELECT x.Alice FROM x WHERE x.Id = a.Id)
ELSE a.Alice
END
FROM a INNER JOIN b ON a.X = b.X
それはきれいに見えません。したがって、次のような一時変数を作成する方法があるかどうか疑問に思っています。
WITH Temp AS SELECT * FROM x WHERE x.Id = a.Id
の範囲内でSELECT
それを参照しますか?