Sql数据库查询,如何实现只显示为某值的字段? 10

例如字段A='yes',B='yes',C='no'希望查询结果只显示字段A,B,不显示C。开始以为用'or'可以,select*fromtablewhereA='yes... 例如字段A='yes',B='yes',C='no'
希望查询结果只显示字段A,B,不显示C。
开始以为用'or'可以,select * from table where A='yes' or B='yes' or C='yes'
但这样只要A,B,C中有一个是yes,就会显示全部
还有其他办法吗?
展开
 我来答
杜爷1号
推荐于2016-04-26 · 知道合伙人软件行家
杜爷1号
知道合伙人软件行家
采纳数:4973 获赞数:9186
毕业于福建农林大学,本科学士学位。从事IT行业3年,曾参与过多个大型项目的需求调研、软件研发。

向TA提问 私信TA
展开全部
  实现只显示为某值的字段,可以通过行列转换实现。
  以下是以sql server为例来说明:
  select b.stu_name,
  max(case a.subject when '语文' then a.grade else '' end) as 语文,
  max(case a.subject when '数学' then a.grade else '' end) as 数学,
  max(case a.subject when '英语' then a.grade else '' end) as 英语
  from stu_grade a,stu_master b
  where a.stu_no=b.stu_no
  group by b.stu_name
  数据库为oralce的话执行
  select b.stu_name,
  max(case a.subject when '语文' then to_char(a.grade) else '' end) as 语文,
  max(case a.subject when '数学' then to_char(a.grade) else '' end) as 数学,
  max(case a.subject when '英语' then to_char(a.grade) else '' end) as 英语
  from stu_grade a,stu_master b
  where a.stu_no=b.stu_no
  group by b.stu_name
狠有毅毅
推荐于2017-12-16 · TA获得超过399个赞
知道答主
回答量:38
采纳率:100%
帮助的人:42.2万
展开全部
你这个表应该是个横式,所以应该先转换成直式
我给你举个例子吧
先建立一个表
CREATE TABLE YesNo
(Column1 char(10),
Column2 char(10),
Column3 char(10),)
GO
/*插入数据*/
INSERT YesNo
VALUES('Yes','Yes','No')
/*你应该说的就是这个意思吧*/
然后执行下列语句将横式转化成直式
SELECT *
FROM YesNo
UNPIVOT (YesNo FOR 列 IN (Column1,Column2,Column3))AS My_unpivot
这样就很清晰的看出自己的哪个列是YES 哪个列是NO
然后在执行
SELECT 列
FROM YesNo
UNPIVOT (YesNo FOR 列 IN (Column1,Column2,Column3))AS My_unpivot
WHERE YesNo = 'Yes'
就可以查到了 你可以自己执行以下 自己理解以下
PS:我要出门了 下午才能回来 不懂的可以问
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
虎慈建萍韵
2020-02-15 · TA获得超过3772个赞
知道大有可为答主
回答量:3188
采纳率:24%
帮助的人:403万
展开全部
首先,要确认该字段是否允许为空,如果不允许则无法插入。
如果该字段允许为空则可参考以下方法插入:
比如数据表table的字段有:name,email,addr。其中addr可以为空,并插入空值。sql语句如下:
insert into table(name,email) values('xiaoming','my email')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ecff4ecf9a
2012-05-10 · 超过71用户采纳过TA的回答
知道答主
回答量:325
采纳率:0%
帮助的人:204万
展开全部
用case when 先来判断出谁是YES or NO 的字段 给别名 再通过子查询来获取你要的数据显示出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liguangwen91
2012-05-10 · TA获得超过131个赞
知道小有建树答主
回答量:239
采纳率:75%
帮助的人:51.8万
展开全部
问题不可实现吧;
如查询字段
A='yes',B='yes',C='no' 为 A,B
A='yes',B='no',C='no' 为 A
A='yes',B='yes',C='yes' 为 A,B,C
要显示字段列数明显不同(一个查询应该不可实现)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式