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

sql中怎么让两列相等

发布时间: 2022-04-26 15:00:14

Ⅰ 如何保证sql里的两列不能同时相等

我的数据库中,
有两个表, 一级分类表tb1, 有如下列: id, name; 二级分类表tb2,
有如下列: id, name, tb1id. 其中tb1id引用的tb1中的id列. 我该如何确保tb2中的数据里的name和tb1id不同时相等?

use tempdb
go
create table tb2(ID int primary key,Name nvarchar(50) not null,tb1id int)
go
create function Chk_Check(@tb1id int,@Name nvarchar(50))
returns bit
as

begin
if(select count(1) from tb2 where Name=@Name and tb1id=@tb1id)=1
return 1
return 0
end
go
alter table tb2 add constraint Chk_Check_Name check(dbo.Chk_Check(tb1ID,Name)=1)

go
--测试
insert tb2 select 1,'a',1

insert tb2 select 2,'a',1--出错

insert tb2 select 3,'a',2

insert tb2 select 4,'a',2--出错

select * from tb2

Ⅱ 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数据库不能插入相同数据怎么才能使能插入相同的两列数据了如图

1、先确认一下你表里唯一约束的字段。
2、如果只是主键,并且是自增列,不用去掉主键,只要在insert 时,不写ID这个列就可以了。
3、例子,假设表的主键是ID,有俩字段,NAME,AGE,且没有其他唯一约束的列:
insert into tab1(name,age) values('raofeng4666275','21');

Ⅳ SQL中限定两列必须相等

使用触发器。

或者使用表级 check, 限定 第二列的值必须等于第一列。

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

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

Ⅵ SQL SERVER怎么同一个表的两个列参照另一个表的同一列 这两个列的数据可以相同

建2个外键:注意约束名不能一样,
员工表 中的 工作人员编号 要是主键。

alter table 表名 add constraint 约束名1 foreign key (推荐人编号) references 员工表(工作人员编号)

alter table 表名 add constraint 约束名2 foreign key (组长编号) references 员工表(工作人员编号)

Ⅶ SQL语句,实现A、B两表中的两列比较,输出数据相同行。

1.
select A.单位, A.所在地区, B.时间 from A inner join B on A.单位=B.单位

2.
select A.单位, B.单位, A.所在地区, B.时间 from A inner join B on B.单位 like '%'+A.单位+'%'

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

select * from 表 where 列1=列2

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

Ⅸ SQL创建CHECK约束时怎么让让两列数据比较

现在要说的是在列这一层次过滤的基于表定义之前就规范好的 CHECK 约束。(MySQL 版本 >= 8.0.16)

  • mysql> create table f1 (r1 int constraint tb_f1_r1_chk1 check (mod(r1,3)=0));

  • Query OK, 0 rows affected (0.03 sec)

  • mysql> create table f2 (r1 int constraint tb_f2_r1_chk1 check (mod(r1,3)=0) not enforced);

  • Query OK, 0 rows affected (0.02 sec)

  • 这里 CHECK 约束的相关限制如下:

    1. constraint 名字在每个数据库中唯一。

    也就是说单个数据库里不存在相同的两个 constraint,如果不定义,系统自动生成一个唯一的约束名字。

    2. check 约束针对语句 insert/update/replace/load data/load xml 生效;针对对应的 ignore 语句失效。

    3. 并非每个函数都可以使用,比如函数结果不确定的:NOW(),CONNECTION_ID(),CURRENT_USER()。

    4. 不适用于存储过程和存储函数。

    5. 系统变量不适用。

    6. 子查询不适用。

    7. 外键动作(比如 ON UPDATE, ON DELETE) 不适用。

    8. enforced 默认启用,如果单独加上 not enforced ,check 约束失效。

Ⅹ sql2005 两个表中不同列名的两列数据是否相同

可以这样
select * from A where not exists(select * from B where A.a = B.b) order by c;