私はプロシージャプログラミングのバックグラウンドから、最終的に私の新しい仕事でTSQLを書くことになります。私の考え方は、条件付きで質問を書くことを考えています。条件なしで照会を続行しないようにする方法。TSQL、条件を回避する方法は?
DECLARE @NumAddress INT
SELECT
@NumAddress = COUNT(*)
FROM Address
WHERE UserID = 1001
IF @NumAddress > 0
BEGIN
SELECT
u.FullName, a.Address AS Address
FROM
Users u
JOIN Address a ON a.UserID = u.UserID
WHERE
u.UserId = 1000
END
ELSE
BEGIN
SELECT
u.FullName, NULL AS Address
FROM
Users u
WHERE
u.UserId = 1000
END
注:私のサンプルクエリは、私の実際のクエリの単純化された例です。ですから、これを無視して私に例を挙げてください。そうすれば、私はこのようなIF条件を避けることができます。前もって感謝します。この特定のケースで
あなたは正しい答えを確認して、代わりの回答を出そうとしていますが、_ * = _を使って結合を学習したり試したりしてはいけませんが、それは古いスタイルの構文です。 –
SQl Serverが外部結合の代わりにクロス結合として解釈する場合があるため、必ずしも正しい結果を得られないので、* =または= *を使用しないでください。これは非常に貧しい習慣です!この構文も廃止予定です。次のバージョンのSQL Serverにアップグレードする前に、すべてのコードを削除する必要があります。 – HLGEM
それは*最後のコメントで失われてしまったことを意味していませんでした* =または= *使用しないでください – HLGEM