请问这SQL怎么写?

jiaguwen123 2008-05-05 01:01:44
大家好,如果我想,当a.serial是以9开头的就查找,与B中id前9位相等的,其它就查与id前8位相等呢?
比如数据:
a: serial b:id
920081123 92008112356
20081125 20081125
...全文
76 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiaguwen123 2008-05-07
  • 打赏
  • 举报
回复
谢谢
13571863167 2008-05-05
  • 打赏
  • 举报
回复
不好意思,没有看清是两个表

CREATE TABLE a(serial varchar(10))
INSERT INTO a
SELECT '920081123' UNION ALL
SELECT '920081124' UNION ALL
SELECT '920081125' UNION ALL
SELECT '20081125' UNION ALL
SELECT '20081126' UNION ALL
SELECT '20081122'

CREATE TABLE b(id varchar(15))
INSERT INTO b
SELECT '92008112356' UNION ALL
SELECT '92008112456' UNION ALL
SELECT '92008111156' UNION ALL
SELECT '20081125' UNION ALL
SELECT '20081126' UNION ALL
SELECT '20081127'

SELECT a.serial,b.id FROM a,b WHERE (left(serial,1)='9' and left(serial,9) = left(id,9)) or (left(serial,1)<>'9' and left(serial,8) = left(id,8))

DROP TABLE a
DROP TABLE b
13571863167 2008-05-05
  • 打赏
  • 举报
回复

CREATE TABLE tbl_Test1(serial varchar(10), id varchar(15))
INSERT INTO tbl_Test1
SELECT '920081123','92008112356' UNION ALL
SELECT '920081124','92008112456' UNION ALL
SELECT '920081125','92008111156' UNION ALL
SELECT '20081125','20081125' UNION ALL
SELECT '20081126','20081126' UNION ALL
SELECT '20081122','20081127'

SELECT * FROM tbl_Test1 WHERE (left(serial,1)='9' and left(serial,9) = left(id,9)) or (left(serial,1)<>'9' and left(serial,8) = left(id,8))

/*
serial id
---------- ---------------
920081123 92008112356
920081124 92008112456
20081125 20081125
20081126 20081126
(所影响的行数为 4 行)
*/
DROP TABLE tbl_Test1
Limpire 2008-05-05
  • 打赏
  • 举报
回复
select * from a, b where ( a.serial like '9%' and left(a.serial,9)=left(b.id, 9) ) or ( a.serial not like '9%' and left(a.serial,8)=left(b.id,8) )
子陌红尘 2008-05-05
  • 打赏
  • 举报
回复

select
*
from
a,b
where
(case when left(a.serial,1) ='9' and left(a.serial,9)=left(b.serial,9) then 1
when left(a.serial,1)!='9' and left(a.serial,8)=left(b.serial,8) then 1
else 0
end) = 1

34,873

社区成员

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

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