4

我将徽标存储在 varbinary(max) 字段中。我正在寻找一条 SQL 语句,它说,

select logo where customerid=5

但如果特定客户 ID 的徽标为 NULL,那么,

select logo where customerid=18

这是默认徽标。如果可能,我想在单个查询中执行此操作。这可以做到吗?谢谢。

4

2 回答 2

4
SELECT COALESCE(b.logo, dflt.logo) AS logo 
FROM mytable dflt
LEFT OUTER JOIN mytable b ON b.customerid=5
WHERE dflt.customerid=18
于 2013-01-31T21:58:36.083 回答
2
SELECT TOP 1 logo
FROM [Table]
WHERE logo is not null and customerid IN (@CustomerID, 18)
ORDER BY CASE WHEN customerid= 18 THEN 1 ELSE 0 END

请注意我是如何处理订单的。我怀疑您可能有一些 ID 为 <18 的客户和一些 ID 为 >18 的客户,因此您需要在这里小心。

于 2013-01-31T21:57:14.097 回答