条件SQL where子句

时间:2013-01-31 21:52:10

标签: sql sql-server

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

select logo where customerid=5

但如果特定customerid的徽标为NULL,则

select logo where customerid=18

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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的客户,因此你需要小心。