請教一個 問題

wenjinhe 2006-09-25 09:50:06
我現在用CASE WHEN ... THEN ... END 語句判斷選擇生成新字段,CASE 語句只能判斷生成在10個以內的數據,但是我要判斷的情況在15個左右,請教一個 和CASE同樣效果但是可以不受限制的 語句~~最好不用存儲過程
...全文
154 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinseyd 2006-09-25
  • 打赏
  • 举报
回复
經測試,你的CASE語句沒有問題,SQL中CASE語句沒有限制的說法。
你的視圖有問題,解決方法:
把視圖生成臨時表,然後執行臨時表。
Code:

SELECT * into #tmp
FROM csalary_smswork_grading

SELECT
CASE NEWWORK
WHEN 'L1' THEN '0'
WHEN 'L2' THEN '10'
WHEN 'L3' THEN '20'
WHEN 'L4' THEN ' 40 '
WHEN 'L5' THEN '60'
WHEN 'L6' THEN '80 '
WHEN 'L7' THEN '100 '
WHEN 'L8' THEN '120'
WHEN 'L9' THEN '150'
WHEN 'L10' THEN '80 '
WHEN 'L11' THEN '100'
WHEN 'L12' THEN '120'
WHEN 'L13' THEN '150 '
ELSE '0'
END

FROM #tmp

drop table #tmp
wenjinhe 2006-09-25
  • 打赏
  • 举报
回复
再次請教高手~`
查詢10句以上
報告以下錯誤:
Server: Msg 8180, Level 16, State 1, Line 1
Statement(s) could not be prepared.
Server: Msg 125, Level 15, State 1, Line 1
Case expressions may only be nested to level 10.
wenjinhe 2006-09-25
  • 打赏
  • 举报
回复
是在視圖里面~~
wenjinhe 2006-09-25
  • 打赏
  • 举报
回复
報告以下錯誤:
Server: Msg 8180, Level 16, State 1, Line 1
Statement(s) could not be prepared.
Server: Msg 125, Level 15, State 1, Line 1
Case expressions may only be nested to level 10.
九斤半 2006-09-25
  • 打赏
  • 举报
回复
declare @i int
select @i=16

SELECT
CASE @i
WHEN 1 THEN 'a'
WHEN 2 THEN 'b'
WHEN 3 THEN 'c'
WHEN 4 THEN 'd'
WHEN 5 THEN 'e'
WHEN 6 THEN 'f'
WHEN 7 THEN 'g'
WHEN 8 THEN 'h'
WHEN 9 THEN 'i'
WHEN 10 THEN 'j'
WHEN 11 THEN 'k'
WHEN 12 THEN 'l'
WHEN 13 THEN 'm'
WHEN 14 THEN 'n'
WHEN 15 THEN 'o'
WHEN 16 THEN 'p'
WHEN 17 THEN 'q'
WHEN 18 THEN 'r'
WHEN 19 THEN 's'
WHEN 20 THEN 't'
ELSE 'Z' END
点点星灯 2006-09-25
  • 打赏
  • 举报
回复
case when .. then.. end

有15个限制的说法吗?应该没有吧,是没有限制的

CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
END

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧