sql语法如何查两列中都是唯一的语句

sql语法如何查两列中都是唯一的语句,第1张

有一个问题啊,如果存在两个都是入,那么算不算唯一,比如E0122,如果还有一个时间是20190102 入,那么E0122还算不算唯一。这样满足号码唯一,不太满足入唯一,不过要看你的具体需求,所以我不写这种情况了,只写号码和入只出现过一次的。

这个个人觉得写法有好多种

(1)利用你的写法

select from BK_SQLE where 号码||'(1' in (SELECT 号码 ||'('||COUNT(1) FROM BK_SQLE GROUP BY 号码 ) and 出入='入'

其实何以嵌套三层,不过两层就可以,所以我就没写三层。另外||是oracle的连接符号,作用是a||b显示出来是ab,所以如果是其他数据库应该也有类似的函数,你看着用。‘(’是为了区分后面的1和前面号码的,只要用一个符号或字母区分就可以,不一定非要(符号。

(2)如果一个号码可能有两个入,那么下面这种方式要改动一下才能用

select from BK_SQLE where 号码 not in (select 号码 from BK_SQLE where 出入='出')

其他方法还有,比如开窗函数也可以做(这种写起来可能比较麻烦,而且还需要试验),还有一种方式始终没怎么想明白,似乎可以又似乎不可以,自己都有点混酱酱的,这种就不写了。

以serversql为例:

if exists(select from sysobjects where name='DepartmentTab')

drop table DepartmentTab

create table DepartmentTab--创建一个表

(

DepartID int primary key identity(1,1),--identity自增 ,primary key主键

DepartName nvarchar(50) unique,--unique唯一的,并且不能为空

condition int default('0') --default 默认为0

)

那就用guid吧。全球唯一id。许多的程序等都有类似的类库方法。比如c#等都会内置的。

还有办法就是自己设计字段吧,什么字段什么意思自己可以设计的不重复。而且各个字段什么意思都可以看明白。

希望我的回答可以帮到你。

select from customer a INNER JOIN

(

select customernum,max(customerid) customerid from customer group by customernum

) b ON Acustomerid = bcustomerid

这种表连接查询,如果没有错的话,效率应该是最好的了。

以上就是关于sql语法如何查两列中都是唯一的语句全部的内容,包括:sql语法如何查两列中都是唯一的语句、mysql 如何查询每一行数据的唯一标识符、MS SQL SERVER数据库中每次获取唯一值问题。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10200851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存