请教个数据库小问题

powerchuangwai 2010-03-23 11:32:09
要求,数据库表中基于字段A,B的值生成字段C的值。

具体如下:

数据表插入数据时,字段A与B的值手工插入,字段C的值根据字段A与B的值自动生成,规则如下:

if (A == '1' && B == '1')
{ C = '1'; }
if (A == '1' && B == '2')
{ C = '2'; }
if (A == '2' && B == '1')
{ C = '3'; }
if (A == '2' && B == '2')
{ C = '4'; }
else
{ C = '0'; }

如何实现?
是不是要写个触发器或者存储过程,,请指点。

如果要写给个代码吧, 谢谢了。。


...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 powerchuangwai 的回复:]
还有就是C的数据类型不需要指定吗??????
[/Quote]

动态语句
powerchuangwai 2010-03-23
  • 打赏
  • 举报
回复
还有就是C的数据类型不需要指定吗??????
powerchuangwai 2010-03-23
  • 打赏
  • 举报
回复
if (A == '1' && B == '1')
{ C = '1'; }
if (A == '1' && B == '2')
{ C = '2'; }
if (A == '2' && B == '1')
{ C = '3'; }
if (A == '2' && B == '2')
{ C = '4'; }
else
{ C = '0'; }
只是个例子,如果很长怎么办??也要一句一句的写上去吗?
dawugui 2010-03-23
  • 打赏
  • 举报
回复
貌似C字段没什么用,不用查询时用case when

select a , b , c = (case when a=1 and b=1 then 1 when a=1 and b=2 then 2 when a=2 and b=1 then 3 when a=2 and b=2 then 4 else 0 end) from tb
chuifengde 2010-03-23
  • 打赏
  • 举报
回复
create table test(a int,b int,c as case when a=1 and b=1 then 1 when a=1 and b=2 then 2 when a=2 and b=1 then 3 when a=2 and b=2 then 4 else 0 end)
powerchuangwai 2010-03-23
  • 打赏
  • 举报
回复
呵呵

动态语句是什么,怎么用,请指教
chuifengde 2010-03-23
  • 打赏
  • 举报
回复
1楼都帮你写好了,插入的时候insert test select 1,2
老黎 2010-03-23
  • 打赏
  • 举报
回复
[Quote=引用楼主 powerchuangwai 的回复:]
要求,数据库表中基于字段A,B的值生成字段C的值。

具体如下:

数据表插入数据时,字段A与B的值手工插入,字段C的值根据字段A与B的值自动生成,规则如下:

if (A == '1' && B == '1')
{ C = '1'; }
if (A == '1' && B == '2')
{ C = '2'; }
if (A == '2' &a……
[/Quote]
短的话就用计算列,不过长的话看小F的
powerchuangwai 2010-03-23
  • 打赏
  • 举报
回复
谢谢

还有好的建议吗?
tstfish 2010-03-23
  • 打赏
  • 举报
回复
如可以在c那列上写个函数,好像比存储过程要好些。

我觉得如果需求就这点的话,也没有必要在数据库中实现,在程序中实现更好。

34,590

社区成员

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

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