Sql 如何将一个接一个发生的两个select查询合并为一个输出

Sql 如何将一个接一个发生的两个select查询合并为一个输出,sql,sql-server,Sql,Sql Server,我有一个问题: SELECT TOP 1000 [Message],[Messagetest] FROM APM_WindowsEvent_Detail WHERE EventCode = '4740' ORDER BY TimeGeneratedUtc DESC 运行时,在消息列中显示输出,如下所示: 一个用户帐户被锁定。主题:安全ID:S-1-5-18帐户名:MYHSDC14$帐户域:MIDYORKS登录ID:0x3e7被锁定的帐户:安全ID:S-1-5-21-2453451309-347

我有一个问题:

SELECT TOP 1000 [Message],[Messagetest]
FROM APM_WindowsEvent_Detail
WHERE EventCode = '4740'
ORDER BY TimeGeneratedUtc DESC
运行时,在消息列中显示输出,如下所示:

一个用户帐户被锁定。主题:安全ID:S-1-5-18帐户名:MYHSDC14$帐户域:MIDYORKS登录ID:0x3e7被锁定的帐户:安全ID:S-1-5-21-2453451309-3470285952-3578167795-501帐户名:来宾其他信息:呼叫者计算机名:MWMCW75687

我还有另一个查询,一旦发生上述情况,我需要运行该查询,但基于第一个查询的结果:

SELECT REPLACE(SUBSTRING([Message], CHARINDEX('Security ID:  S-1-5-21-', [Message]), LEN([Message])), 'Security ID:  S-1-5-21-', '') AS [Messagetest]
FROM APM_WindowsEvent_Detail
因此,在安全ID:S-1-5-21-之前显示的所有信息都将被删除并放入Messagetest列中。现在我对SQL不太了解,所以对于如何组合这两个查询,我有点困惑

完成后,我将要运行第三个查询,作为此查询的一部分,以显示“帐户名:”之前的所有文本。我希望首先完成查询的第二部分,因为帐户名被引用了两次,可能还有其他方法可以做到这一点,但我对SQL不太了解,也不确定如何做到这一点,非常感谢您的帮助

--编辑--

我现在已经解决了这个问题,我没有意识到当使用:AS Messagetest时,我无法基于此运行第二个查询,我现在的方式如下:

DROP TABLE DOLockoutTest

SELECT SUBSTRING(Message, LEN(LEFT(Message, CHARINDEX ('795-', Message))) + 1, LEN(Message) - LEN(LEFT(Message, CHARINDEX ('795-', Message))) - LEN(RIGHT(Message, LEN(Message) - CHARINDEX ('Additional', Message))) - 1) AS [Messagetest] 
INTO DOLockoutTest
FROM APM_WindowsEvent_Detail
WHERE EventCode IN
(
    SELECT EventCode
    FROM dbo.APM_WindowsEvent_Detail
    WHERE EventCode = '4740'
)


SELECT REPLACE(SUBSTRING([Messagetest], CHARINDEX('Account Name:', [Messagetest]), LEN([Messagetest])), 'Account Name:', '') AS [User] 
FROM DOLockoutTest

1) 哪个数据库?查看
charindex
它看起来像
sql server
,但请确认。2) 给出一些示例数据和准确的预期输出。3) 您提供的消息列的输出是针对一行或多行的。SQL Server的哪个版本?1)这是SQL Server,版本是2008 R2 SP32)此列中当前的数据如下所示:用户帐户已锁定。主题:安全ID:S-1-5-18帐户名:MYHSDC12$帐户域:MIDYORKS登录ID:0x3e7被锁定的帐户:安全ID:S-1-5-21-2453451309-3470285952-3578167795-95000帐户名:David。测试其他信息:呼叫者计算机名:MWHAW72256,我希望它看起来是:帐户名:测试附加信息:调用方计算机名:MWHAW722563)这是针对多行数据的1)哪个数据库?查看
charindex
它看起来像
sql server
,但请确认。2) 给出一些示例数据和准确的预期输出。3) 您提供的消息列的输出是针对一行或多行的。SQL Server的哪个版本?1)这是SQL Server,版本是2008 R2 SP32)此列中当前的数据如下所示:用户帐户已锁定。主题:安全ID:S-1-5-18帐户名:MYHSDC12$帐户域:MIDYORKS登录ID:0x3e7被锁定的帐户:安全ID:S-1-5-21-2453451309-3470285952-3578167795-95000帐户名:David。测试其他信息:呼叫者计算机名:MWHAW72256,我希望它看起来是:帐户名:测试附加信息:调用方计算机名:MWHAW722563)这是用于多行数据的