SQL Server 2008 で実行する SQL クエリを作成しました。何らかの理由で時間がかかり、不完全なタイムアウトになります。
これは、テスト目的で変更された私のクエリです。列FileData
は でvarbinary(max)
、主キーはContentFileId
です。ご覧のとおり、特定の 1 つのレコードのみを選択しようとしています。
SELECT *,
CASE
WHEN [CMS_tbContentFile].[FileData] IS NULL
THEN (
SELECT [CMS_tbContentFile2].[FileData]
FROM [CMS_tbContentFile] AS [CMS_tbContentFile2]
WHERE [CMS_tbContentFile2].[ContentFileId] = 2152
)
ELSE [CMS_tbContentFile].[FileData]
END AS [Test]
FROM [CMS_tbContentFile]
WHERE [CMS_tbContentFile].[ContentFileId] = 3054
のサブクエリはCASE (SELECT [CMS_tbContentFile2].[FileData] FROM [CMS_tbContentFile] AS [CMS_tbContentFile2] WHERE [CMS_tbContentFile2].[ContentFileId] = 2152)
単独で正常に実行され、メイン クエリのその部分を削除すると、メイン クエリは正常に実行されます。CASE
問題を引き起こすのは、 とサブクエリの組み合わせだけです。
うまくいけば、上記を見て誰かが問題に気付くでしょう。T-SQL では不可能なこのタイプのクエリの問題でしょうか?