请教,关于在建表时有未知字段有多少的问题

raingiggs 2005-03-01 03:06:42
现在我要建一个表,存放电压数据,如:第1路电压,第2路电压....第n路电压,这个n是未知的,需要根据实际情况来顶的,请问我应该怎么建表啊???
...全文
351 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
haslong 2005-03-28
  • 打赏
  • 举报
回复
ding
jilate 2005-03-16
  • 打赏
  • 举报
回复
declare @tt as varchar(500)
select @tt= 'select '
select @tt = @tt + cast(aa as varchar) + ',' from table where tableconditon = 条件
select @tt = left(@tt, len(@tt-1))

产生出 select col1,col2这样的东西,

动态产生列

然后加上其他条件,用execsql执行
天地客人 2005-03-16
  • 打赏
  • 举报
回复
三个字段搞定:id,电压路值,电压值
mophi 2005-03-16
  • 打赏
  • 举报
回复
编号 电压  值
1  第1路  20
2  第2路 30
3  第3路 50
4  第4路 10
... ... ...
就是这样子的
lishengyu 2005-03-14
  • 打赏
  • 举报
回复
行列转换一下

三个字段搞定:id,电压路值,电压值
LoveLwn 2005-03-11
  • 打赏
  • 举报
回复
行列转换一下

三个字段搞定:id,电压序号,电压值
real_name 2005-03-11
  • 打赏
  • 举报
回复
id 不做 标识 用, 当那路电压号 不行吗?
raingiggs 2005-03-07
  • 打赏
  • 举报
回复
终于来了个人
小P怎么个弄法啊?具体
LoveLwn 2005-03-07
  • 打赏
  • 举报
回复
不用那样横向数据,而用竖向的,只要用一个线路号列就可以了
zhangyanxxxx 2005-03-07
  • 打赏
  • 举报
回复
先以行的形式存储,然后用交叉表把行转为列
raingiggs 2005-03-07
  • 打赏
  • 举报
回复
real_name(*真名)
这样的话就有个标识id啊,但是我还要记录是哪路电压呢
real_name 2005-03-07
  • 打赏
  • 举报
回复
Create table 表(id varchar(20),电压值 varchar(20) )
raingiggs 2005-03-03
  • 打赏
  • 举报
回复
tttttttttttttttttt
raingiggs 2005-03-03
  • 打赏
  • 举报
回复
dddddddddddddddd
raingiggs 2005-03-02
  • 打赏
  • 举报
回复
zarge(鲨去来兮)
这个怎么转换啊?


libin_ftsafe(子陌红尘)
你的方案能说的在详细一点吗
RainYang 2005-03-02
  • 打赏
  • 举报
回复
都是高手啊
Andy__Huang 2005-03-01
  • 打赏
  • 举报
回复
电压序号,电压值

电压序号做主鍵
子陌红尘 2005-03-01
  • 打赏
  • 举报
回复
那就不要只建一张表了,用三张表来实现动态扩展:
--------------------------------------------------------------

VoltageDict --字典表:
---------------------------
VoltageID int
VoltageName varchar(10)
VoltageDesc varchar(100)
...

RecordInfo --记录表
---------------------------
RecordID int
...

VoltageInfo --数据表:
---------------------------
RecordID int
VoltageID int
VoltageValue numeric(10,2)



然后使用如下查询:
------------------------------------------------------------------
declare @s varchar(8000)
set @s = ''

select @s = @s + ',['+VoltageName+']'=max(case when b.VoltageID='+rtrim(VoltageID)+' then b.VoltageValue end)'
from VoltageDict order by VoltageID

set @s = 'select RecordID'+@s+' from RecordInfo a,VoltageInfo b where a.RecordID = b.RecordID group by a.RecordID'
8992026 2005-03-01
  • 打赏
  • 举报
回复
同意2楼

不过显示报表的时候,就要处理一下了
Softlee81307 2005-03-01
  • 打赏
  • 举报
回复
選建一個表
Create table 表(col1 varchar(20),col2 varchar(20) )
-----在n=3時則
alter table 表 add col3 varchar(20) null
...
加载更多回复(3)

34,590

社区成员

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

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