4

varbinary(max) フィールドにロゴを保存しています。次のような SQL ステートメントを探しています。

select logo where customerid=5

ただし、特定の customerid のロゴが 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 に答える