请教这个SQL咋写呢?

leon51 2018-09-29 09:59:23
...全文
151 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leon51 2018-09-29
  • 打赏
  • 举报
回复
多谢各位版主的回复
吉普赛的歌 版主 2018-09-29
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('TableA') IS NOT NULL DROP TABLE TableA
IF OBJECT_ID('TableB') IS NOT NULL DROP TABLE TableB
GO
CREATE TABLE TableA(
	id INT IDENTITY(1,1) PRIMARY KEY,
	part VARCHAR(10)	
)
CREATE TABLE TableB(
	id INT IDENTITY(1,1) PRIMARY KEY,
	part VARCHAR(10),
	color NVARCHAR(10)	
)
GO
INSERT INTO TableA(	part ) VALUES('PA1'),('PA2'),('PB1'),('PB2'),('PB3'),('PC1')
INSERT INTO TableB(	part,color) VALUES('PA','红'),('PB','绿'),('PC','蓝')
GO
SELECT ta.*,tb.color 
FROM TableA AS ta INNER JOIN TableB AS tb ON ta.part LIKE tb.part+'%'
/*
id          part       color
----------- ---------- ----------
1           PA1        红
2           PA2        红
3           PB1        绿
4           PB2        绿
5           PB3        绿
6           PC1        蓝
 */
leon51 2018-09-29
  • 打赏
  • 举报
回复
引用
少一个字符,用 like 最合适。
若是用like应该怎么写呢?我不是专业的,现正在学习中...,需要各位版本的帮助,非常感谢!
卖水果的net 版主 2018-09-29
  • 打赏
  • 举报
回复
少一个字符,用 like 最合适。
二月十六 版主 2018-09-29
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'TableA') is null
drop table TableA
Go
Create table TableA([id] int,[part] nvarchar(23))
Insert TableA
select 1,N'PA1' union all
select 2,N'PA2' union all
select 3,N'PB1' union all
select 4,N'PB2' union all
select 5,N'PB3' union all
select 6,N'PC1'
GO
if not object_id(N'TableB') is null
drop table TableB
Go
Create table TableB([id] int,[part] nvarchar(22),[color] nvarchar(21))
Insert TableB
select 1,N'PA',N'红' union all
select 2,N'PB',N'绿' union all
select 3,N'PC',N'蓝'
Go
--测试数据结束
SELECT
tablea.*,
tableb.color
FROM
tablea
JOIN
tableb
ON LEFT(tablea.part, 2) = tableb.part;


吉普赛的歌 版主 2018-09-29
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('TableA') IS NOT NULL DROP TABLE TableA
IF OBJECT_ID('TableB') IS NOT NULL DROP TABLE TableB
GO
CREATE TABLE TableA(
	id INT IDENTITY(1,1) PRIMARY KEY,
	part VARCHAR(10)	
)
CREATE TABLE TableB(
	id INT IDENTITY(1,1) PRIMARY KEY,
	part VARCHAR(10),
	color NVARCHAR(10)	
)
GO
INSERT INTO TableA(	part ) VALUES('PA1'),('PA2'),('PB1'),('PB2'),('PB3'),('PC1')
INSERT INTO TableB(	part,color) VALUES('PA','红'),('PB','绿'),('PC','蓝')
GO
SELECT ta.*,tb.color 
FROM TableA AS ta INNER JOIN TableB AS tb ON LEFT(ta.part,2)=tb.part
/*
id          part       color
----------- ---------- ----------
1           PA1        红
2           PA2        红
3           PB1        绿
4           PB2        绿
5           PB3        绿
6           PC1        蓝
 */

34,593

社区成员

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

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