Case When 解决简单的"是"与"否"

昨天晚上买了一个sql的新书,特别的高兴,晚上就阅读了很多,突然发现以前经常在SQL中使用的case when的用法,以前在csdn上面看到好多,但是就是不知道怎么用,可能那个时候还没有用到的地方,不过现在就不一样了,看过那短短的3页纸之后,加强领悟了一个已经领悟的道理:书本还是要的,网络不可以解决所有的问题!
至于case when用在那里,我在这里只是用到了一小部分,一个是与否的问题;
如图所示:
casewhen.jpg
以前的做法是在DataGrid_ItemDataBound事件里面处理,
大概的做法是这样写的
 1 ExpandedBlockStart.gif ContractedBlock.gif   Private   Sub DataGrid1_ItemDataBound() Sub DataGrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles Datagrid1.ItemDataBound
 2InBlock.gif                If (e.Item.ItemIndex <> -1Then
 3InBlock.gif            ' e.Item.Cells(1).Text = System.Convert.ToString(e.Item.ItemIndex + 1 + DataGrid1.CurrentPageIndex * DataGrid1.PageSize)
 4InBlock.gif            If e.Item.Cells(5).Text.ToString = "False" Then
 5InBlock.gif                e.Item.Cells(5).Text = "没有通过"
 6InBlock.gif                e.Item.BackColor = Color.LightSkyBlue
 7InBlock.gif
 8InBlock.gif            Else
 9InBlock.gif                If e.Item.Cells(5).Text = "True" Then
10InBlock.gif                    e.Item.Cells(5).Text = "已经通过"
11InBlock.gif                End If
12InBlock.gif            End If
13InBlock.gif        End If
14ExpandedBlockEnd.gif    End Sub
超级麻烦,不过可以定义背景颜色,也很不错
昨天看了case when的用法之后,才知道不要那么麻烦了
 1 None.gif Select
 2 None.gifa.UserBorrowID,a.UserID,a.BookID,a.BorrowDate,b.UserName,c.Title ,a.GoOnDate,a.IsReturn,
 3 None.gifa.IsGoOn,
 4 None.gifa.ReturnDate,
 5 None.gif     case  a.IsGoOn 
 6 None.gif     when   1   then   ' '
 7 None.gif     when   0   then   ' '
 8 None.gif     END   As  IsGoOnBorrow,
 9 None.gif     case  a.IsReturn 
10 None.gif     when   1   then   ' '
11 None.gif     when   0   then   ' '
12 None.gif     End   as  IsReturn1
13 None.gif from  Library_Borrows  as  a,Library_books  as  c,Library_Users  as  b 
14 None.gif where
15 None.gifa.bookid = c.bookid  and  a.userid = b.UserID   and  a.UserID = @UserID
16 None.gif ORDER   BY  a.ModifyDate  DESC
^_^,建立一个存储过程,然后就不用再ItemBound里面写了。这样就可以解决问题,当然还可以拓展开来,比如可以用case when 的搜索形式进行变换字符串 case when GoOndate<... then '通过' 这样就可以减少在.vb中写代码了。
但是现在还不知道性能怎么样,因为我对测试性能是一无所知。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值