zoukankan      html  css  js  c++  java
  • Case When 解决简单的"是"与"否"

    昨天晚上买了一个sql的新书,特别的高兴,晚上就阅读了很多,突然发现以前经常在SQL中使用的case when的用法,以前在csdn上面看到好多,但是就是不知道怎么用,可能那个时候还没有用到的地方,不过现在就不一样了,看过那短短的3页纸之后,加强领悟了一个已经领悟的道理:书本还是要的,网络不可以解决所有的问题!
    至于case when用在那里,我在这里只是用到了一小部分,一个是与否的问题;
    如图所示:

    以前的做法是在DataGrid_ItemDataBound事件里面处理,
    大概的做法是这样写的
     1 Private Sub DataGrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles Datagrid1.ItemDataBound
     2                If (e.Item.ItemIndex <> -1Then
     3            ' e.Item.Cells(1).Text = System.Convert.ToString(e.Item.ItemIndex + 1 + DataGrid1.CurrentPageIndex * DataGrid1.PageSize)
     4            If e.Item.Cells(5).Text.ToString = "False" Then
     5                e.Item.Cells(5).Text = "没有通过"
     6                e.Item.BackColor = Color.LightSkyBlue
     7
     8            Else
     9                If e.Item.Cells(5).Text = "True" Then
    10                    e.Item.Cells(5).Text = "已经通过"
    11                End If
    12            End If
    13        End If
    14    End Sub
    超级麻烦,不过可以定义背景颜色,也很不错
    昨天看了case when的用法之后,才知道不要那么麻烦了
     1Select
     2a.UserBorrowID,a.UserID,a.BookID,a.BorrowDate,b.UserName,c.Title ,a.GoOnDate,a.IsReturn,
     3a.IsGoOn,
     4a.ReturnDate,
     5    case a.IsGoOn 
     6    when 1 then ''
     7    when 0 then ''
     8    END As IsGoOnBorrow,
     9    case a.IsReturn 
    10    when 1 then ''
    11    when 0 then ''
    12    End as IsReturn1
    13from Library_Borrows as a,Library_books as c,Library_Users as b 
    14where
    15a.bookid=c.bookid and a.userid=b.UserID  and a.UserID=@UserID
    16ORDER BY a.ModifyDate DESC
    ^_^,建立一个存储过程,然后就不用再ItemBound里面写了。这样就可以解决问题,当然还可以拓展开来,比如可以用case when 的搜索形式进行变换字符串 case when GoOndate<... then '通过' 这样就可以减少在.vb中写代码了。
    但是现在还不知道性能怎么样,因为我对测试性能是一无所知。
  • 相关阅读:
    if...else if...else和switch语句的注意点
    oracle如何用sql查看触发器?
    jfinal如何调用存储过程?
    struts2中s:iterator 标签的使用详解 及 OGNL用法
    Protobuf3 语法指南
    Golang的优雅重启
    从外部设置传入Go变量
    Golang服务器热重启、热升级、热更新(safe and graceful hot-restart/reload http server)详解
    Linux文件系统深度讨论【转】
    Go语言中的byte和rune区别、对比
  • 原文地址:https://www.cnblogs.com/xucanzhao/p/273284.html
Copyright © 2011-2022 走看看