读书人

根据bit数据显示不同内容解决方法

发布时间: 2012-01-31 21:28:41 作者: rapoo

根据bit数据显示不同内容
我有个表里的字段是bit型,想在select查询语句中,当这个字段的内容是‘0’时,显示空值,是‘1’时显示“作废”,好像应该用子查询吧,但搞了半天老是出错,想上来请教各位老师。
select rkdjh,rksj,czyname,(if (select quit from rkd)=1 AS '作废' else ''from kc)作废标志 from kc


我在我写的C/S系统里用了4个触发器:都是对库存表进行操作的,入库、入库退单、销售、销售退单各一个,都对库存表产生影响,我嫌在前台实现麻烦,就都用触发器了,这样在两台工作站同时工作时,尤其是一台做入库,另一台做销售,或是两台同时做销售,会不会把数据搞错。

[解决办法]
你这个quit是哪个表里的?怎么会有个rkd,如果它是rkd表里的话,要与kc表相关联.
假设kc表与rkd表的关联字段名为rkdjh:

SQL code
select rkdjh,rksj,czyname,(case when exists(select 1 from rkd where quit=1 and rkdjh=a.rkdjh) then '作废' else '' end) 作废标志 from kc a
[解决办法]
SQL code
select rkdjh,rksj,czyname,(case when quit=1 then '作废' when quit=0 then '' end) 作废标志 from rkd
[解决办法]
SQL code
select rkdjh,rksj,czyname,(case when quit=1 then '作废' when quit=0 then '' end) 作废标志,(case when zfsj is not NULL else '' end) 作废时间 from rkd/*判断是否为null要用is null和is not null,另外case when是可以用else的,没必要一直then老大,你这个数据库掌握程度我很担心你用触发器诶,坑爹啊。。。
[解决办法]
SQL code
--你的整个需求应该这么写,关联条件按你的2个表自己改select rkdjh,rksj,czyname,(case when quit=1 then '作废' else '' end) 作废标志,(case when zfsj is null then '' else zfsj end) 作废时间 from rkd a join sale bon (a.关联条件=b.关联条件)where b.xstime between @c and @d 

读书人网 >SQL Server

热点推荐