次のようなクエリがあります。
select *, coalesce((select top 1 filename from logos where uid=id),'nologo.jpg') from users
しかし、合体はそれをサポートしていないようです。これどうやってするの?
次のようなクエリがあります。
select *, coalesce((select top 1 filename from logos where uid=id),'nologo.jpg') from users
しかし、合体はそれをサポートしていないようです。これどうやってするの?
これを試してみてください -
SELECT
u.*
, ISNULL(filename, 'nologo.jpg')
FROM dbo.users u
OUTER APPLY
(
SELECT TOP 1 [filename]
FROM dbo.logos
WHERE uid = id
) t
またはこれ -
SELECT
u.*
, COALESCE([filename], 'nologo.jpg')
FROM dbo.users u
LEFT JOIN (
SELECT id, [filename] = MAX([filename])
FROM dbo.logos
GROUP BY id
) t ON u.uid = t.id
あなたのクエリも有効です -
SELECT
*
, COALESCE((
SELECT TOP 1 [filename]
FROM dbo.logos
WHERE uid = id
)
, 'nologo.jpg')
FROM dbo.users