sql 2000 对某一列分类

daigazi 2013-09-20 08:37:06
假如有一列数据vehicle,范围是1~28,如下所示。
vehicle
1
2
3
4
...
28

我想根据这一列新增一列veh。即vehicle这一列的1~4为veh的1,5~18为veh的2,19~28为veh的3。
应该怎么写呢???
...全文
161 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Andy__Huang 2013-09-20
  • 打赏
  • 举报
回复
这是一个计算列,完全不需要加一列到原表去.这是设计的问题
daigazi 2013-09-20
  • 打赏
  • 举报
回复
alter table boutlist201201 add veh int update boutlist201201 set veh=case when Col007 between 1 and 4 or Col007 in(21,22)then 1 when Col007 between 23 and 28 then 2 else 3 end 说veh无效
daigazi 2013-09-20
  • 打赏
  • 举报
回复
引用 7 楼 hdhai9451 的回复:
同样是同有问题的,你加top 10 也是可以的
select top 10 Col007,case  when Col007 between 1 and 4  or Col007 in(21,22)then 1 
    when Col007 between 23 and 28  then 2 
	else 3 end as veh
from boutlist201201
嗯,可以了。 就是没有新增一列到原表里去
Andy__Huang 2013-09-20
  • 打赏
  • 举报
回复
同样是同有问题的,你加top 10 也是可以的
select top 10 Col007,case  when Col007 between 1 and 4  or Col007 in(21,22)then 1 
    when Col007 between 23 and 28  then 2 
	else 3 end as veh
from boutlist201201
daigazi 2013-09-20
  • 打赏
  • 举报
回复
引用 4 楼 daigazi 的回复:
[quote=引用 3 楼 hdhai9451 的回复:]

select vehicle,case when vehicle between 1 and 4 then 1 
    when vehicle between 5 and 18 then 2 
    when vehicle between 19 and 28 then 3 else 4 end as veh
from tb
不好意思,那如果是1~4和21~22是1呢?就是这种不是连续的。 另外,是新增一列,所以这个只是select出来,还要写入到元表里呢。小白,用的少,数据库比较大,怕写错了,半天出的结果不符合要求,就晕死了。[/quote] 问问题的时候贪图快了,没说清楚。 我的要求是这样的,1~4和21~22是1,23~28是2,其他是3,这样写不对哦 select top 10 Col007,case Col007 when (between 1 and 4 and between 21 and 22)then 1 when between 23 and 28 then 2 else 3 end as veh from boutlist201201
daigazi 2013-09-20
  • 打赏
  • 举报
回复
引用 1 楼 hdhai9451 的回复:
select vehicle,case vehicle when between 1 and 4 then 1 
    when between 5 and 18 then 2 
    when between 19 and 28 then 3 else 4 end as veh
from tb
问问题的时候贪图快了,没说清楚。 我的要求是这样的,1~4和21~22是1,23~28是2,其他是3,这样写不对哦 select top 10 Col007,case Col007 when (between 1 and 4 and between 21 and 22)then 1 when between 23 and 28 then 2 else 3 end as veh from boutlist201201
daigazi 2013-09-20
  • 打赏
  • 举报
回复
引用 3 楼 hdhai9451 的回复:

select vehicle,case when vehicle between 1 and 4 then 1 
    when vehicle between 5 and 18 then 2 
    when vehicle between 19 and 28 then 3 else 4 end as veh
from tb
不好意思,那如果是1~4和21~22是1呢?就是这种不是连续的。 另外,是新增一列,所以这个只是select出来,还要写入到元表里呢。小白,用的少,数据库比较大,怕写错了,半天出的结果不符合要求,就晕死了。
Andy__Huang 2013-09-20
  • 打赏
  • 举报
回复

select vehicle,case when vehicle between 1 and 4 then 1 
    when vehicle between 5 and 18 then 2 
    when vehicle between 19 and 28 then 3 else 4 end as veh
from tb
习惯性蹭分 2013-09-20
  • 打赏
  • 举报
回复

create table #tab(vehicle int)
declare @i int
set @i=1
while @i<=28
begin
insert into #tab values(@i)
set @i=@i+1
end
alter table #tab add vehi int
update #tab set vehi=case   when vehicle between 1 and 4 then 1
when vehicle between 5 and 18 then 2
when vehicle between 19 and 28 then 3 end
go
select * from #tab
drop table #tab

Andy__Huang 2013-09-20
  • 打赏
  • 举报
回复
select vehicle,case vehicle when between 1 and 4 then 1 
    when between 5 and 18 then 2 
    when between 19 and 28 then 3 else 4 end as veh
from tb
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

34,875

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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