首页 热点资讯 义务教育 高等教育 出国留学 考研考公

sql 查询 sqlserver200 distinct 问题

发布网友 发布时间:2022-04-26 20:07

我来回答

5个回答

热心网友 时间:2023-10-27 10:09

很简单,在select 出的字段前加入distinct 就会把出现重复的字段取唯一值,如下

strsql = "select distinct PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage from View_ProctPic" &_
" where PI_iID in (" & Session("ProctList") & ") order by PI_iID"

但是你需要注意,由于你所取的字段不止有PI_iID,还包括PI_sCode,PI_sName,PI_fPrice,PIP_sImage ,所以如果有些产品的PI_iID相同,而其他这四个字段里有个别相同的话,还是可能出现PI_iID重复的记录。

这时如何取值,你需要再考虑一下。

热心网友 时间:2023-10-27 10:10

你的想法有点问题:
PI_iID, PI_sCode, PI_sName, PI_fPrice, PIP_sImage
1 11 张三 1000 图片1
1 12 李四 2000 图片2
类似这样的数据如果【PI_iID】只显示【1】后面的数据显示什么?
如果非得只显示一个【1】的话,只能类似如下:

strsql = "select PI_iID,
max(PI_sCode),
max(PI_sName),
max(PI_fPrice),
max(PIP_sImage)
from View_ProctPic" &_
" where PI_iID in ("
&Session("ProctList")&
") group by PI_iID order by PI_iID"

---
以上,希望对你有所帮助。

热心网友 时间:2023-10-27 10:10

strsql = "select distinct PI_iID,PI_sCode,PI_sName,PI_fPrice,
PIP_sImage from View_ProctPic" &_
" where PI_iID in ("&Session("ProctList")&") order by PI_iID"

热心网友 时间:2023-10-27 10:11

strsql = "select distinct * from View_ProctPic" &_
" where PI_iID in ("&Session("ProctList")&") order by PI_iID"

热心网友 时间:2023-10-27 10:11

--将表看做两张表,做联合查询,以5个字段做条件删选,去除5个字段都相同的记录
select PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage
from View_ProctPic vp1,
(select PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage
from View_ProctPic group by PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage
having count(*)>1) vp2
where vp1.PI_iID=vp2.PI_iID,vp1.PI_sCode=vp2.PI_sCode,
vp1.PI_sName=vp2.PI_sName,vp1.PI_fPrice=vp2.PI_fPrice,vp1.PIP_sImage=vp2.PIP_sImage
看看吧,应该有用

热心网友 时间:2023-10-27 10:09

很简单,在select 出的字段前加入distinct 就会把出现重复的字段取唯一值,如下

strsql = "select distinct PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage from View_ProctPic" &_
" where PI_iID in (" & Session("ProctList") & ") order by PI_iID"

但是你需要注意,由于你所取的字段不止有PI_iID,还包括PI_sCode,PI_sName,PI_fPrice,PIP_sImage ,所以如果有些产品的PI_iID相同,而其他这四个字段里有个别相同的话,还是可能出现PI_iID重复的记录。

这时如何取值,你需要再考虑一下。

热心网友 时间:2023-10-27 10:10

你的想法有点问题:
PI_iID, PI_sCode, PI_sName, PI_fPrice, PIP_sImage
1 11 张三 1000 图片1
1 12 李四 2000 图片2
类似这样的数据如果【PI_iID】只显示【1】后面的数据显示什么?
如果非得只显示一个【1】的话,只能类似如下:

strsql = "select PI_iID,
max(PI_sCode),
max(PI_sName),
max(PI_fPrice),
max(PIP_sImage)
from View_ProctPic" &_
" where PI_iID in ("
&Session("ProctList")&
") group by PI_iID order by PI_iID"

---
以上,希望对你有所帮助。

热心网友 时间:2023-10-27 10:10

strsql = "select distinct PI_iID,PI_sCode,PI_sName,PI_fPrice,
PIP_sImage from View_ProctPic" &_
" where PI_iID in ("&Session("ProctList")&") order by PI_iID"

热心网友 时间:2023-10-27 10:11

strsql = "select distinct * from View_ProctPic" &_
" where PI_iID in ("&Session("ProctList")&") order by PI_iID"

热心网友 时间:2023-10-27 10:11

--将表看做两张表,做联合查询,以5个字段做条件删选,去除5个字段都相同的记录
select PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage
from View_ProctPic vp1,
(select PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage
from View_ProctPic group by PI_iID,PI_sCode,PI_sName,PI_fPrice,PIP_sImage
having count(*)>1) vp2
where vp1.PI_iID=vp2.PI_iID,vp1.PI_sCode=vp2.PI_sCode,
vp1.PI_sName=vp2.PI_sName,vp1.PI_fPrice=vp2.PI_fPrice,vp1.PIP_sImage=vp2.PIP_sImage
看看吧,应该有用

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com