【发布时间】:2008-10-30 11:09:01
【问题描述】:
我有以下用于转换数据的 sql 查询,但是否可以将 int 的值保存在某个变量中以避免多次转换?
update prospekts set sni_kod = case
when
cast(sni_kod as int) >= 1000 and cast(sni_kod as int) <= 1499
or cast(sni_kod as int) >= 1600 and cast(sni_kod as int) <= 2439
then '1'
when
cast(sni_kod as int) >= 7000 and cast(sni_kod as int) <= 7499
then 'W'
else
sni_kod
end
脚本中还有很多 when-case,仅显示第一个。除了简单的文本脚本之外,我不能使用任何东西。
更新 使用 SQL Server 2000
谢谢
安德斯
【问题讨论】:
-
您在评论中说 sni_kod 中的值可以是“Q”或“T”。结果 CAST 无论如何都不起作用。它只会给你一个演员表例外。 “将 varchar 值 'Q' 转换为数据类型 int 时转换失败。”