●●●求多重条件的SQL语句●●●

rolinson 2004-07-07 05:59:45
用SQL语句找出满足以下条件的记录:
各个地区编号不包括S开头的地区, 且地区只能出现一次.

如:序号1和2, 编号1的地区编号中已经有S了, 则该地区(江西省-赣州市)就不计算在内.
输出的结果样例为:
江西省 九江市
河南省 洛阳市
...


序号 地区编号 省 市
------------------------------
1 S0101 江西省 赣州市
2 D0101 江西省 赣州市
3 G0101 江西省 九江市
4 S0201 河南省 商丘市
5 S0202 河南省 商丘市
6 D0201 河南省 洛阳市
7 G0202 河南省 洛阳市
...
...全文
184 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
pbsql 2004-07-07
  • 打赏
  • 举报
回复
楼上久违了,别来无恙

SELECT *
FROM 表 T
WHERE LEFT(地区编号,1)<>'S'
AND NOT EXISTS(SELECT * FROM 表 WHERE 地区编号=T.地区编号 AND 序号<>T.序号)
Hanson_bati_zhu 2004-07-07
  • 打赏
  • 举报
回复
用地区编号的后四位好像不能表示唯一的地区
所以只能用省市名称来表示了
你看看这个办法能行吗

SELECT DISTINCT 省,市
FROM 表
WHERE 省+市 NOT IN (SELECT 省+市 FROM 表 WHERE Left(地区编号,1) = 'S')

Hanson_bati_zhu 2004-07-07
  • 打赏
  • 举报
回复
哦,SORRY,我没看清问题
不好意思
我先想想
Hanson_bati_zhu 2004-07-07
  • 打赏
  • 举报
回复
这样不行吗?

SELECT DISTINCT 省,市
FROM 表
WHERE Left(地区编号,1) <> 'S'

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧