-2

User_Table在 SQL Server 2008 中有一个表,有一个列UserAvatar( varbinary) 可以是null.

我需要一个返回用户头像的查询,如果它不为空,并且如果它null返回保存在特定行中的默认用户头像(有一个名为的IDPK

我该怎么办?

4

2 回答 2

1
CREATE PROCEDURE sp_myDuplicateCheck
 @ID int,
@UserAvatar varbinary,
AS
BEGIN
SET @UserAvatar = Select UserAvatar from User_Table where ID=@ID
IF (@UserAvatar IS NULL)
Set @UserAvatar = Select UserAvatar from User_Table where ID=xxDefault
END
END

您可以在 SP 中执行逻辑并从 Code 中调用 SP 并获取数据。

其他选项是您可以在您的代码上执行相同的逻辑使用http://msdn.microsoft.com/en-us/library/tckcces5%28v=vs.80%29.aspx IsDBNULL 从 ID=XX 的 User_Table 中选择 UserAvatar

if (dr["nameOfField"] == System.DBNull.Value) //Here Dr is your Data reader 
{
    nedID = 1;
}
于 2013-02-03T15:13:44.030 回答
-1

试试这个

select case when u.UserAvatar  is null then (select * from User_Table uu where uu.ID = PK)
       else u.UserAvatar
from User_Table u
于 2013-02-03T15:07:31.603 回答