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

例如字段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,就会显示全部
还有其他办法吗?

  实现只显示为某值的字段,可以通过行列转换实现。
  以下是以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
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-12-16
你这个表应该是个横式,所以应该先转换成直式
我给你举个例子吧
先建立一个表
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:我要出门了 下午才能回来 不懂的可以问本回答被网友采纳
第2个回答  2020-02-15
首先,要确认该字段是否允许为空,如果不允许则无法插入。
如果该字段允许为空则可参考以下方法插入:
比如数据表table的字段有:name,email,addr。其中addr可以为空,并插入空值。sql语句如下:
insert into table(name,email) values('xiaoming','my email')
第3个回答  2012-05-10
用case when 先来判断出谁是YES or NO 的字段 给别名 再通过子查询来获取你要的数据显示出来。
第4个回答  2012-05-10
问题不可实现吧;
如查询字段
A='yes',B='yes',C='no' 为 A,B
A='yes',B='no',C='no' 为 A
A='yes',B='yes',C='yes' 为 A,B,C
要显示字段列数明显不同(一个查询应该不可实现)

Sql数据库查询,如何实现只显示为某值的字段?
A='yes',B='yes',C='no' 为 A,BA='yes',B='no',C='no' 为 AA='yes',B='yes',C='yes' 为 A,B,C要显示字段列数明显不同(一个查询应该不可实现) liguangwen91 | 发布于2012-05-10 举报| 评论 0 0 用case when 先来判断出谁是YES or NO 的字段 给别名 再通过子查询来获取你...

sql查询如何实现读出指定“字段”包含指定“字符”的记录集?
可以使用:SELECT 字段2 FROM 数据表名 WHERE 字段2 = '3',如果是要包含字符3的话,使用:SELECT字段2FROM数据表名WHERE字段2LIKE '%3%'。SQL是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,同时也是数据库脚本文件的扩展名。SQL是高级...

如何在sql语句中查询只带数字的字段
你应该希望提取的字段只要含有数字就提出,剔除空和不含数字的字符串。select * from table where regexp_substr(check,'[0-9]+') is not null

sql表中一个字段存了多个值,用sql怎么能每行显示一个值?
第一步:使用返回结果集的查询方法executereader查询表一数据 第二步:根据返回的结果集来判断每一个对象中的列2是不是多个值,如果是的话,进行拆分,使用字符串拆分为数组的方法 第三步:将拆分后的数组存储到另一个sqldatareader对象中,最后赋值给datagridview的datasource ...

sql 中限定为某个数值怎么写
有很多方法能确定查询条件,或者输出类别。什么都不写,但是有默认值的 default = 号 也能确定某个特定值。。。isnull(字段,'输出') as 名 也能保证字段为DBNULL时输出设定的值。还有很多函数能实现输出的变化,Convert()[case()]。分支语句也能哦,SQL你面的switch(貌似SQL查询与距离不能写if...

SQL取字段中某一部分特定数值
如果只是固定取"20\/30"比较容易, 只需找到"20\/30"在此字符串的开始位置,再截取5个字符的长度就可以了,如:SELECT CASE WHEN CHARINDEX('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg', '20\/30') > 0 THEN SUBSTRING('mgdf13hj44jjjgasetrxzc20\/30nj5weyu45f5645gjhkdfjkg', CHARINDEX...

查询数据库中某个字段的sql语句怎么写
1、在计算机中,打开Oracle的连接程序,用新建的数据库管理员,进入【Oracle控制】的窗口上,鼠标左键单击【服务器】按钮,并选择【SQL工作表】,如下图所示。2、接着,在【Oracle服务器】的窗口上,在输入窗口中输入SQL查询语句,并单击【执行】按钮,可以看到表格当前的数据,但是没有显示出字段类型,...

sql 筛选 如果某列有重复字段,只显示一条记录
select  字段1,字段2,字段3,字段4 from A where 字段1 in (select min(字段1) from A t on A.字段 2=t.字段2) order by 字段1 即可以上功能,经过sql 2000\/2005\/2008完美测试

mysql 怎么在数据库中查找某一字段的值
在数据库中查找某一字段的值的操作方法和步骤如下:1、首先,在桌面上,单击“ Management Studio”图标,如下图所示。2、其次,完成上述步骤后,在该界面中,单击左上角的“新建查询”按钮,如下图所示。3、接着,完成上述步骤后,输入如下红框标注的SQL语句,如下图所示。4、然后,完成上述步骤后...

sql 查询所有字段只要包含某关键字的记录
所有字段?如果是这样需求的话, 那没简便方法,只能这样写了:select * from 表 where 字段1 like '%关键字%' or 字段2 like '%关键字%' or 字段3 like '%关键字%' or ...字段n like '%关键字%'

相似回答