A£¬ id, attributes
1£¬ 1001,12;1002,45
2, 1002,14;1003,54
B, id,name
1001,ÎÞµÐ
1002£¬Èõ
1003£¬Ç¿º·
AÖÐattributes×Ö¶ÎÊÇÓжà¸öBÊý¾Ý±íµÄidºÍÖµ×é³ÉµÄ£¬
ÏÖÔÚÎÒÏëÔÚselect,µÄʱºò°ÑËûµÄnameºÍÖµÒ»ÆðÏÔʾ£»
1£¬ÎÞµÐ,12;Èõ,45
2, Èõ,14;Ç¿º·,54
Óï¾ä¸ÃÔõôд
SQL code:
left join
SQL code:
--> Éú³É²âÊÔÊý¾Ý±í: [A]
IF OBJECT_ID('[A]') IS NOT NULL
DROP TABLE [A]
GO
CREATE TABLE [A] ([id] [int],[attributes] [nvarchar](20))
INSERT INTO [A]
SELECT '1','1001,12;1002,45' UNION ALL
SELECT '2','1002,14;1003,54'
--> Éú³É²âÊÔÊý¾Ý±í: [B]
IF OBJECT_ID('[B]') IS NOT NULL
DROP TABLE [B]
GO
CREATE TABLE [B] ([id] [int],[name] [nvarchar](10))
INSERT INTO [B]
SELECT '1001','ÎÞµÐ' UNION ALL
SELECT '1002','Èõ' UNION ALL
SELECT '1003','Ç¿º·'
--SELECT * from [A]
--SELECT * from [B]
-->SQL²éѯÈçÏÂ:
IF OBJECT_ID('[fn_test]') IS NOT NULL
DROP FUNCTION [fn_test]
GO
CREATE FUNCTION [fn_test](
@S VARCHAR(200)
)RETURNS VARCHAR(200)
AS
BEGIN
SELECT @S=REPLACE(@S,LTRIM([id]),NAME) from B
RETURN @S
END
GO
SELECT id,[attributes]=dbo.[fn_test]([attributes]) from A
/*
id
¿ÉÄÜÒòΪ¹¤×÷µÄÔÒò ½Ó´¥Êý¾Ý¿âÕâ¿é±È½ÏÉÙ£¬Ö®Ç°¶¼ÊÇ×ö³ÌÐòÕâ¿é£¬Êý¾Ý¿âÕâ¿é¶¼ÓÐרÃŵÄÈËÀ´×ö ·Ö¹¤¶¼ºÜÃ÷ϸ ËùÒÔ¶ÔÊý¾Ý¿âÕâÒ»¿éÍêÈ«²»Á˽⡣ǰ¶Îʱ¼ä È¥ÃæÊÔÁ˼¸¼Ò¹«Ë¾ ¼¸ºõ¶¼ÊÇÔÚÊý¾Ý¿âÕâ¿é¹ÒµôµÄ Á¬¸ö¼òµ¥µÄSQ ......