如何在SQL数据库中截取字符串并且比较。
数据库中建了两个表,有一个记录商品浏览记录,另外一个记录商品信息。现在要建立一个视图,目的是为客户推荐商品。将浏览记录中的商品编号与商品信息中的商品编号比较,前4位相等的...
数据库中建了两个表,有一个记录商品浏览记录,另外一个记录商品信息。现在要建立一个视图,目的是为客户推荐商品。将浏览记录中的商品编号与商品信息中的商品编号比较,前4位相等的是同一种类别的商品。
怎样写语句 展开
怎样写语句 展开
2个回答
展开全部
CREATE TABLE #商品信息(
CODE VARCHAR(8),
NAME VARCHAR(8)
);
CREATE TABLE #商品浏览记录(
CODE VARCHAR(8),
NAME VARCHAR(8)
);
INSERT INTO #商品信息
SELECT '00010001', '可乐' UNION ALL
SELECT '00010002', '汽水' UNION ALL
SELECT '00010003', '啤酒' UNION ALL
SELECT '00020001', '牙刷' UNION ALL
SELECT '00020002', '毛巾' UNION ALL
SELECT '00030001', '内存' UNION ALL
SELECT '00030002', 'CPU'
GO
INSERT INTO #商品浏览记录
SELECT '00010003', '啤酒' UNION ALL
SELECT '00030002', 'CPU'
GO
SELECT
g.*
FROM
#商品信息 g
JOIN
(SELECT DISTINCT SUBSTRING(CODE, 1, 4) FROM #商品浏览记录) v
ON (g.CODE LIKE v.CODE + '%')
CODE NAME
-------- --------
00010001 可乐
00010002 汽水
00010003 啤酒
00030001 内存
00030002 CPU
(5 行受影响)
CODE VARCHAR(8),
NAME VARCHAR(8)
);
CREATE TABLE #商品浏览记录(
CODE VARCHAR(8),
NAME VARCHAR(8)
);
INSERT INTO #商品信息
SELECT '00010001', '可乐' UNION ALL
SELECT '00010002', '汽水' UNION ALL
SELECT '00010003', '啤酒' UNION ALL
SELECT '00020001', '牙刷' UNION ALL
SELECT '00020002', '毛巾' UNION ALL
SELECT '00030001', '内存' UNION ALL
SELECT '00030002', 'CPU'
GO
INSERT INTO #商品浏览记录
SELECT '00010003', '啤酒' UNION ALL
SELECT '00030002', 'CPU'
GO
SELECT
g.*
FROM
#商品信息 g
JOIN
(SELECT DISTINCT SUBSTRING(CODE, 1, 4) FROM #商品浏览记录) v
ON (g.CODE LIKE v.CODE + '%')
CODE NAME
-------- --------
00010001 可乐
00010002 汽水
00010003 啤酒
00030001 内存
00030002 CPU
(5 行受影响)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询