線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1219
推到 Plurk!
推到 Facebook!

SQL Server 的View 不支援 Case , 有其他指令可以避免零除嗎?

尚未結案
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-15 08:34:21 IP:211.21.xxx.xxx 未訂閱
請問:SQL Server 的View 不支援 Case , 有其他指令可以避免零除嗎? 謝謝您的解答。
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-15 12:23:25 IP:203.70.xxx.xxx 未訂閱
我不知道有無其他指令可以辦到,但是提供一個簡單的想法: select A, B, (A / B) as C from Test where B <> 0 union all select A, B , 0 as C from Test where B = 0 把除數為 0 的挑出來另外做。
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-16 10:23:41 IP:211.21.xxx.xxx 未訂閱
引言: 我不知道有無其他指令可以辦到,但是提供一個簡單的想法: select A, B, (A / B) as C from Test where B <> 0 union all select A, B , 0 as C from Test where B = 0 把除數為 0 的挑出來另外做。
很可惜,union 指令在 View 的設計中是不合法的。 發表人 - bruce 於 2004/12/16 16:11:57
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-16 16:39:29 IP:210.65.xxx.xxx 未訂閱
Hi bruce,    冒昧請教一下,你的 MS SQL Server 版本為何?    我在 SQL Server 2000 下試過,Case 與 Union 指令皆可以置於 View 內,且執行無誤!    以下為系統的 View syssegments 內容如下:
CREATE VIEW syssegments (segment, name, status) AS
        SELECT  0, 'system'     , 0  UNION
        SELECT        1, 'default'    , 1  UNION
        SELECT        2, 'logsegment' , 0
或是自行寫的 View
CREATE VIEW dbo.VIEW1
AS
SELECT  user_id,
        CASE user_id WHEN NULL 
            THEN 'unknown'
            ELSE user_id 
        END AS user_code
FROM    dbo.TAS_USER
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-17 08:45:24 IP:211.21.xxx.xxx 未訂閱
Fishman兄 忘了說明測試版本是 SQL Server 7.0,也對allenchan 兄說聲抱歉,請原諒我的疏忽。 看來SQL Server 7.0 的功能是陽春了一點,要架構一個完善系統,還得考慮升級了,不知Fishman兄高見如何?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-17 12:45:55 IP:210.65.xxx.xxx 未訂閱
Hi bruce,    Sorry !! SQL Server 我不熟,沒辦法給你太多建議!    不過剛剛請其他同事在 SQL server 6.5 上試了一下,Case 與 Union 指令皆可以置於 View 內,沒道理 MS SQL Server 7.0 沒有此功能啊!    < >< > ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-17 14:15:38 IP:211.21.xxx.xxx 未訂閱
確實是不行,請看訊息 指令是寫在SQL Server 不是Delphi 喔。
James
高階會員


發表:10
回覆:290
積分:220
註冊:2002-07-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-12-17 16:16:22 IP:61.229.xxx.xxx 未訂閱
bruce 兄, 我想您可能是用 Wizard 的工具去建立 View ,那才會有那樣的問題, 如果您直接在 Query Analyze 下面下命令建立 View , 那應該是沒有問題 的才對。
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-12-17 16:53:00 IP:211.21.xxx.xxx 未訂閱
已了解問題所在,很感謝allenchan,fishmen,james幾位朋友的協助測試。應該三位都給分才對。
系統時間:2024-11-25 6:59:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!