FOR XML PATH
,其实它就是将查询结果集以XML形式展现,将多行的结果,展示在同一行。

1、作用

sql
STUFF用法

sql
STUFF用法

    下面我们来写一个例子:

删除指定长度的字符,并在指定的起点处插入另一组字符。

1、作用

1、作用

        假设我们有个工作流程表:

2、语法

删除指定长度的字符,并在指定的起点处插入另一组字符。

删除指定长度的字符,并在指定的起点处插入另一组字符。

    图片 1图片 2

STUFF ( character_expression , start , length ,character_expression )

2、语法

2、语法

CREATE TABLE [dbo].[Workflow_Action](
    [WorkflowSchema] [nvarchar](128) NULL,
    [ActionSchema] [nvarchar](128) NULL,
    [ActionName] [nvarchar](64) NULL
)

INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('material-price','confirm','审核通过')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('material-price','reject','审核驳回')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('material-price','executing','执行价格')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('material-price','non-executing','不执行价格')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('oa-meeting-apply','confirm','审核通过')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('oa-meeting-apply','reject','审核驳回')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('oa-officialSeal-apply','confirm','审核通过')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('oa-officialSeal-apply','reject','审核驳回')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('oa-officialSeal-apply','returned','归还公章')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','commit','提交审核')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','reject','采购驳回')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','confirm','审核通过')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','order','采购下单')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','recommit','重新提交审核')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','part-consignment','部分收货')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase','consignment','完成收货')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase-request','commit','提交审核')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase-request','confirm','审核通过')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase-request','reject','申请驳回')
INSERT INTO [dbo].[Workflow_Action] ([WorkflowSchema],[ActionSchema],[ActionName]) VALUES ('purchase-request','recommit','重新提交审核')

3、示例

STUFF ( character_expression , start , length ,character_expression )

STUFF ( character_expression , start , length ,character_expression )

数据表和数据

以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符
b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串

3、示例

3、示例

    图片 3

SELECT STUFF(‘abcdef’, 2, 3, ‘ijklmn’)
GO

以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符
b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串

以下示例在第一个字符串 abcdef 中删除从第 2 个位置(字符
b)开始的三个字符,然后在删除的起始位置插入第二个字符串,从而创建并返回一个字符串

 

下面是结果集

SELECT STUFF(‘abcdef’, 2, 3, ‘ijklmn’)
GO

SELECT STUFF(‘abcdef’, 2, 3, ‘ijklmn’) GO

    一、简单介绍

aijklmnef

下面是结果集

下面是结果集

      接下来,我们用这个方法查询这个表的数据。

4、参数
character_expression

aijklmnef

aijklmnef

    select * from [dbo].[Workflow_Action] for xml path
      它可以将查询结果转换为一段XML格式的代码

一个字符数据表达式。character_expression
可以是常量、变量,也可以是字符列或二进制数据列。

4、参数
character_expression

4、参数 character_expression

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注