当前位置:首页 » 编程语言 » sql查询两列数据相等
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql查询两列数据相等

发布时间: 2022-07-23 01:26:55

‘壹’ sql server 2005查询一个表中两列值相等的sql语句怎么写

select * from 表 where 列1=列2

或者select * from A A1 INNER JOIN A A2 ON A1.列1=A2.列2

‘贰’ sql语句如何查询一个表中某两个字段的相同数据

查询一个表中某两个字段的相同数据代码是:Select Name,ID From A group by Name,ID having count (*)>1。

结构化查询语言(Structured Query Language)简称SQL,结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;

sql 语句就是对数据库进行操作的一种语言。

sql="select * from 数据表 where字段名=字段值 order by字段名[desc]"(按某个字段值降序排列,默认升序ASC);

sql="select * from 数据表 where字段名like '%字段值%' order by 字段名 [desc]";

sql="select top 10 * from 数据表 where字段名=字段值 order by 字段名 [desc]";

sql="select top 10 * from 数据表 order by 字段名 [desc]";

sql="select * from 数据表 where字段名in ('值1','值2','值3')";

sql="select * from 数据表 where字段名between 值1 and 值2"。

sql语句:

更新:update table1 set field1=value1 where 范围;

查找:select * from table1 where field1 like '%value1%' (所有包含'value1'这个模式的字符串);

排序:select * from table1 order by field1,field2 [desc];

求和:select sum(field1) as sumvalue from table1;

平均:select avg(field1) as avgvalue from table1;

最大:select max(field1) as maxvalue from table1;

最小:select min(field1) as minvalue from table1[separator]。

‘叁’ sql查询两个字段相同的记录

EXCEL中用VBA连接ACCESS数据库
有如下一张表,要分别查找出所有同名的人、所有同名并且学号也一样的人以及所有同名但不同学号的人。

查询所有同名人员
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1)
查询结果:

查找所有姓名和学号两个字段都重复的人
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1) and [学号] in (SELECT [学号] FROM [18年考试成绩] group by [学号] having count(学号)>1)
查询结果:

查找所有姓名重复但学号不重复的人
select * from [18年考试成绩] where [姓名] in (SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1) and [学号] not in (SELECT [学号] FROM [18年考试成绩] group by [学号] having count(学号)>1)
注意:要把SELECT查询子句配合in或not in 操作符使用,SELECT查询子句只能有一列内容。
查询结果:

其中子句 “SELECT [姓名] FROM [18年考试成绩] group by [姓名] having count(姓名)>1”是显示所有重复的姓名,如果如下:

如果要知道重复出现次数,则可以这样写:
SELECT [姓名],count(姓名) as 出现次数 FROM [18年考试成绩] group by [姓名] having count(姓名)>1
结果如下:

查找唯一记录
group by [姓名],意思是按姓名分组,having count(姓名)>1 是分组条件,意思是姓名次数出现2次以上的重复内容以姓名进行分组,前面的count(姓名)是对分组以后的姓名统计出现次数。在后面要使用函数条件时应该使用having,而不是使用where
查找唯一值,比如本例的班级中,只有一个“四班”,要把这个四班的所有字段显示出来可以这样:
select * from [18年考试成绩] where 班级 not in (SELECT 班级 FROM [18年考试成绩] group by 班级 having count(班级)>1)
结果:

如果使用“SELECT DISTINCT 班级 FROM [18年考试成绩]”语句查询唯一值,结果将会如下:

DISTINCT 会显示不重复的值,如果有重复的,只显示第一个,所以如果需要显示仅出现一次的值并不适合使用SELECT DISTINCT语句
分组查询语句:
比如要班级为单位,查询每个班的总人数,科目总分,科目平均分等
SELECT [班级],count(姓名) as 班级人数,sum(语文) as 语文总成绩,sum(数学) as 数学总成绩,ROUND(avg(语文),1) as 语文平均分,ROUND(avg(数学),1) as 数学平均分 FROM [18年考试成绩] group by [班级]
查询结果如下:

注意:如果使用函数的字段,不使用AS指定别名,将会自动生成一个字段名,第一列名字Expr1000,第二列名为Expr1001,第三列名为Expr1002,以此类推
如:
SELECT [班级],count(姓名),sum(语文),sum(数学),ROUND(avg(语文),1) ,ROUND(avg(数学),1) FROM [18年考试成绩] group by [班级]
查询结果如下:

如果不指定别名,你将无法清楚在查询结果中知道每一列是干什么的。
如果需要再细分,查询每个班女生总人数和科目平均分,只需要再加一个where条件就可以了
SELECT [班级],count(姓名) as 班级女性人数,ROUND(avg(语文),1) as 语文平均分,ROUND(avg(数学),1) as 数学平均分 FROM [18年考试成绩] where 性别='女' group by [班级]

‘肆’ sql语句分组查询 其中2列值都相等的条目数

select * from 表名 where 第三个字段名=第四个字段名

‘伍’ SQL 如何比较两个字符串是否完全相等

1、新建一个文件,命名为test.php。

‘陆’ sql数据库表1表2两张表中两列中的数据相同,那么等于另一列对应数值

update 表2 as a set 结果列=(select b.结果列 from 表1 as b where a.标识列=b.标识列)

‘柒’ sql怎么查询出两列字段相同的数据(同时忽略英文大小写和空格的情况下)

SQL 关键字 UPPer(),lower() 函数,
UPPer 统一转换成大写,
lower 统一转换成小写
假如表 T 中存在t 字段,数据为:’abCD‘
select * from T where UPPER(t)=UPPER(abCD)
上面是转换成大写再比较,转换小写用法类似。

‘捌’ sql查询两个表相同的数据

SQL语句如下:

SELECT * from TABLE1
full join TABLE2 on TABLE1.xingming = TABLE2.xingming
where
TABLE1.xingming is null or TABLE2.xingming is null

分析:

1、首先得出两个表的并集

从结果中可以看出,表1中的赵二在表2中没有相同xingming的记录。

表2中的刘六在表1中没有相同xingming的记录。

本题还有其它多种解法,此处列出比较好理解的一种。

(8)sql查询两列数据相等扩展阅读:

使用自联接

即使表在数据库中没有自反关系,也可将它与自身联接。 例如,可使用自联接查找生活在同一城市的作者对。

与任何联接一样,自联接至少需要两个表。 不同之处在于,不是向查询中添加第二个表,而是添加同一个表的第二个实例。 这样,可将表的第一个实例中的列与第二个实例中的同一列相比较,这样可相互比较列中的值。查询和视图设计器为表的第二个实例分配一个别名。

例如,如果要创建自联接来查找居住在 Berkeley 内的所有作者对,可将表的第一个实例中的 city 列与第二个实例中的 city 列相比较。 所得到的查询可能类似于:

SELECT
authors.au_fname, authors.au_lname, authors1.au_fname AS Expr2, authors1.au_lname AS Expr3

FROM authors INNER JOIN authors authors1 ON authors.city = authors1.city

WHERE
authors.city = 'Berkeley'

参考资料:

网络.full join

‘玖’ sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)

字段值去掉空格和转换成大写或小写之后,再做比较就可以了。

不知道你是什么数据库,以ORACLE数据库举例:

SELECTDISTINCTIN1.*
FROMINVENTORYIN1
WHEREEXISTS(
SELECTIN2.*
FROMINVENTORYIN2

WHEREIN1.ID!=IN2.ID
ANDLOWER(REPLACE(IN1.NAME,''))=LOWER(REPLACE(IN2.NAME,''))
ANDLOWER(REPLACE(IN1.STD,''))=LOWER(REPLACE(IN2.STD,''))
)

‘拾’ 任何用SQL或者EXCEL语句查询两列数据的相同项

update 表 set b = (select d from 表 where) where