如何在SQLServer2008中替换word中的字母表
我的问题是分别使用表1和表2得出以下结果 表1如何在SQLServer2008中替换word中的字母表,sql,sql-server,Sql,Sql Server,我的问题是分别使用表1和表2得出以下结果 表1 MQGRP MQCOMPET 1 AV 2 UW|AV 表2 FullForm RecordKey AVALON AV UWARON UW 结果 MQGRP MQCOMPET 1 AVALON 2 UWARON|AVALON 问题是您的数据库没有规范化,因此您无法进行简单的查询以获得所需的内容 首先,需要将第一个表拆分为以下行: 1 AV 2 AV 2 UW 您需要创建一个表值函数来拆分第一个表的MQCOMP
MQGRP MQCOMPET
1 AV
2 UW|AV
表2
FullForm RecordKey
AVALON AV
UWARON UW
结果
MQGRP MQCOMPET
1 AVALON
2 UWARON|AVALON
问题是您的数据库没有规范化,因此您无法进行简单的查询以获得所需的内容 首先,需要将第一个表拆分为以下行:
1 AV
2 AV
2 UW
您需要创建一个表值函数来拆分第一个表的MQCOMPET
,并将其与交叉应用
或外部应用
一起使用,以获得问题的第一个解决方案。另见
然后,您需要将rsult与表2连接起来,以获得类似的结果
1 AV AVALON
2 AV AVALON
2 UW UWARON
最后,您可以使用此技术再次连接这些值:
问题是您的数据库没有标准化,因此您无法通过简单的查询获得所需的数据 首先,需要将第一个表拆分为以下行:
1 AV
2 AV
2 UW
您需要创建一个表值函数来拆分第一个表的MQCOMPET
,并将其与交叉应用
或外部应用
一起使用,以获得问题的第一个解决方案。另见
然后,您需要将rsult与表2连接起来,以获得类似的结果
1 AV AVALON
2 AV AVALON
2 UW UWARON
最后,您可以使用此技术再次连接这些值:
问题是您的数据库没有标准化,因此您无法通过简单的查询获得所需的数据 首先,需要将第一个表拆分为以下行:
1 AV
2 AV
2 UW
您需要创建一个表值函数来拆分第一个表的MQCOMPET
,并将其与交叉应用
或外部应用
一起使用,以获得问题的第一个解决方案。另见
然后,您需要将rsult与表2连接起来,以获得类似的结果
1 AV AVALON
2 AV AVALON
2 UW UWARON
最后,您可以使用此技术再次连接这些值:
问题是您的数据库没有标准化,因此您无法通过简单的查询获得所需的数据 首先,需要将第一个表拆分为以下行:
1 AV
2 AV
2 UW
您需要创建一个表值函数来拆分第一个表的MQCOMPET
,并将其与交叉应用
或外部应用
一起使用,以获得问题的第一个解决方案。另见
然后,您需要将rsult与表2连接起来,以获得类似的结果
1 AV AVALON
2 AV AVALON
2 UW UWARON
最后,您可以使用此技术再次连接这些值:
首先创建一个小拆分函数 拆分函数定义
CREATE FUNCTION dbo.Split_Using_XML
(
@InputString NVARCHAR(MAX),
@delimiter varchar(1)
)
RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml AS XML;
SET @xml = CAST(('<X>'+REPLACE(@InputString,@delimiter ,'</X><X>')+'</X>') AS XML)
INSERT INTO @t(val)
SELECT C.value('.', 'varchar(10)') AS value
FROM @xml.nodes('X') as X(C)
RETURN;
END
查询
;WITH CTE
AS (
SELECT t.MQGRP
,t2.FullForm AS MQCOMPET
FROM @TABLE1 t
CROSS APPLY (SELECT val FROM dbo.Split_Using_XML(t.MQCOMPET, '|'))C(VAL)
INNER JOIN @Table2 t2
ON C.val = t2.RecordKey
)
SELECT C.MQGRP
,STUFF(( SELECT ' | ' + MQCOMPET
FROM CTE
WHERE MQGRP = C.MQGRP
FOR XML PATH(''),TYPE).
value('.','NVARCHAR(MAX)'),1,2,'') AS MQCOMPET
FROM CTE C
GROUP BY C.MQGRP
结果集
╔═══════╦══════════════════╗
║ MQGRP ║ MQCOMPET ║
╠═══════╬══════════════════╣
║ 1 ║ AVALON ║
║ 2 ║ UWARON | AVALON ║
╚═══════╩══════════════════╝
先创建一个小拆分函数 拆分函数定义
CREATE FUNCTION dbo.Split_Using_XML
(
@InputString NVARCHAR(MAX),
@delimiter varchar(1)
)
RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml AS XML;
SET @xml = CAST(('<X>'+REPLACE(@InputString,@delimiter ,'</X><X>')+'</X>') AS XML)
INSERT INTO @t(val)
SELECT C.value('.', 'varchar(10)') AS value
FROM @xml.nodes('X') as X(C)
RETURN;
END
查询
;WITH CTE
AS (
SELECT t.MQGRP
,t2.FullForm AS MQCOMPET
FROM @TABLE1 t
CROSS APPLY (SELECT val FROM dbo.Split_Using_XML(t.MQCOMPET, '|'))C(VAL)
INNER JOIN @Table2 t2
ON C.val = t2.RecordKey
)
SELECT C.MQGRP
,STUFF(( SELECT ' | ' + MQCOMPET
FROM CTE
WHERE MQGRP = C.MQGRP
FOR XML PATH(''),TYPE).
value('.','NVARCHAR(MAX)'),1,2,'') AS MQCOMPET
FROM CTE C
GROUP BY C.MQGRP
结果集
╔═══════╦══════════════════╗
║ MQGRP ║ MQCOMPET ║
╠═══════╬══════════════════╣
║ 1 ║ AVALON ║
║ 2 ║ UWARON | AVALON ║
╚═══════╩══════════════════╝
先创建一个小拆分函数 拆分函数定义
CREATE FUNCTION dbo.Split_Using_XML
(
@InputString NVARCHAR(MAX),
@delimiter varchar(1)
)
RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml AS XML;
SET @xml = CAST(('<X>'+REPLACE(@InputString,@delimiter ,'</X><X>')+'</X>') AS XML)
INSERT INTO @t(val)
SELECT C.value('.', 'varchar(10)') AS value
FROM @xml.nodes('X') as X(C)
RETURN;
END
查询
;WITH CTE
AS (
SELECT t.MQGRP
,t2.FullForm AS MQCOMPET
FROM @TABLE1 t
CROSS APPLY (SELECT val FROM dbo.Split_Using_XML(t.MQCOMPET, '|'))C(VAL)
INNER JOIN @Table2 t2
ON C.val = t2.RecordKey
)
SELECT C.MQGRP
,STUFF(( SELECT ' | ' + MQCOMPET
FROM CTE
WHERE MQGRP = C.MQGRP
FOR XML PATH(''),TYPE).
value('.','NVARCHAR(MAX)'),1,2,'') AS MQCOMPET
FROM CTE C
GROUP BY C.MQGRP
结果集
╔═══════╦══════════════════╗
║ MQGRP ║ MQCOMPET ║
╠═══════╬══════════════════╣
║ 1 ║ AVALON ║
║ 2 ║ UWARON | AVALON ║
╚═══════╩══════════════════╝
先创建一个小拆分函数 拆分函数定义
CREATE FUNCTION dbo.Split_Using_XML
(
@InputString NVARCHAR(MAX),
@delimiter varchar(1)
)
RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))
AS
BEGIN
DECLARE @xml AS XML;
SET @xml = CAST(('<X>'+REPLACE(@InputString,@delimiter ,'</X><X>')+'</X>') AS XML)
INSERT INTO @t(val)
SELECT C.value('.', 'varchar(10)') AS value
FROM @xml.nodes('X') as X(C)
RETURN;
END
查询
;WITH CTE
AS (
SELECT t.MQGRP
,t2.FullForm AS MQCOMPET
FROM @TABLE1 t
CROSS APPLY (SELECT val FROM dbo.Split_Using_XML(t.MQCOMPET, '|'))C(VAL)
INNER JOIN @Table2 t2
ON C.val = t2.RecordKey
)
SELECT C.MQGRP
,STUFF(( SELECT ' | ' + MQCOMPET
FROM CTE
WHERE MQGRP = C.MQGRP
FOR XML PATH(''),TYPE).
value('.','NVARCHAR(MAX)'),1,2,'') AS MQCOMPET
FROM CTE C
GROUP BY C.MQGRP
结果集
╔═══════╦══════════════════╗
║ MQGRP ║ MQCOMPET ║
╠═══════╬══════════════════╣
║ 1 ║ AVALON ║
║ 2 ║ UWARON | AVALON ║
╚═══════╩══════════════════╝
单词之间的分隔符通常是|?单词之间的分隔符通常是|?单词之间的分隔符通常是|?单词之间的分隔符通常是|?