Case When 解決簡單的”是”與”否”

來源:互聯網
上載者:User
昨天晚上買了一個sql的新書,特別的高興,晚上就閱讀了很多,突然發現以前經常在SQL中使用的case when的用法,以前在csdn上面看到好多,但是就是不知道怎麼用,可能那個時候還沒有用到的地方,不過現在就不一樣了,看過那短短的3頁紙之後,加強領悟了一個已經領悟的道理:書本還是要的,網路不可以解決所有的問題!
至於case when用在那裡,我在這裡只是用到了一小部分,一個是與否的問題;
:

以前的做法是在DataGrid_ItemDataBound事件裡面處理,
大概的做法是這樣寫的 1 Private Sub DataGrid1_ItemDataBound()Sub DataGrid1_ItemDataBound(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles Datagrid1.ItemDataBound
 2                If (e.Item.ItemIndex <> -1) Then
 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中寫代碼了。
但是現在還不知道效能怎麼樣,因為我對測試效能是一無所知。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.