台灣最大程式設計社群網站
線上人數
827
 
會員總數:245982
討論主題:189562
歡迎您免費加入會員
討論區列表 >> MS SQL >> [SQL]sql的CASE敘述怎麼下才對
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
[SQL]sql的CASE敘述怎麼下才對
價值 : 0 QP  點閱數:3604 回應數:8
樓主

小毓
初學者
466 138
240 91
發送站內信

sql中的預存程序我想要寫類似vb的select case請問要如何寫語法????
我已經寫ㄌ...可是卻出現錯誤???
declare @ValueLength int          --欄位長度
declare @SearchValue varchar(30)  --所要搜尋的欄位值
declare @SearchColumn varchar(30) --所要搜尋ㄉ欄位名稱
set @SearchValue='441656877'
set @ValueLength = len(@SearchValue)

   case @ValueLength
    when 10 then 
                             @SearchColumn='公司傳真'
    when 5 then   
                             @SearchColumn='CT_號碼' 
   end

select  @SearchColumn

本篇文章發表於2002-06-05 09:45
1樓
回應

小美
檢舉此回應
應該是 

SET @SeachColumn=CAse WHEN @ValueLength=10 THEN '公司傳真' 
                                    WHEN @ValueLength=8 THEN 'CT_號碼' END
本篇文章回覆於2002-06-05 10:02
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

小毓
檢舉此回應
那請問一下....
CASE敘述裡面...可以像vb一樣執行多行程式碼ㄇ
  像CASE裡有FOR迴圈或是IF敘述或其他多行程式碼
本篇文章回覆於2002-06-05 10:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

小美
檢舉此回應
sql CASE 里是不行回傳多筆的資料型態...除非你把多筆的資料組合成一個回傳值就可以
SQL CASE 里可以用 @valenlength=10 OR @valueLength='' THEN 'XXXX'
這樣的寫法就如IF 里的判斷式
本篇文章回覆於2002-06-05 10:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

小毓
檢舉此回應
有哪邊的網站專門教這些SQL程式流程控制的敘述阿或是SQL的語法
本篇文章回覆於2002-06-05 10:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

Allen
捐贈 VP 給 Allen 檢舉此回應
SQL Server online book有參考資訊, 坊間的SQL書籍也多有說明, 但它並非是每本SQL 書籍的重點, 因此, 深度會有所不同, 你可以找一下
本篇文章回覆於2002-06-05 10:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

小毓
檢舉此回應
我有買兩本SQLㄉ書....說的都沒有很好......
sql OnLine電子書....是有說...但只能拿來查...(當語法忘ㄌ時).....
我是想說有沒有整體教學ㄉ
本篇文章回覆於2002-06-05 10:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

LOTS
檢舉此回應
坊間有專問針對sql語法的書
我想那會比較有你需要的...
要不就要看sql的help了...
本篇文章回覆於2002-06-05 10:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
回應

小美
檢舉此回應
我想到了,你可以不要用CASE丫改用IF ELSE的方法
里面就可以用迴圈了,記得要用begin end 包起來
本篇文章回覆於2002-06-05 10:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.