當您嘗試利用 FOR XML PATH 產生 XML 格式時,若遇到 Result Set 為 Null 時,會導致整個查詢結果為 Null ,若您想要在查不到資料時,可以顯示自訂的內容,本文將提供可能的作法。

  • 以下程式碼示範將 Northwind 資料庫的 Region 資料表查詢結果以 XML 格式呈現:
   1:  DECLARE @xml  NVARCHAR(MAX)    
   2:  SET @xml =  CAST (
   3:      (SELECT RegionID,  LTRIM(RTRIM(RegionDescription)) AS RegionDescription
   4:      FROM  Region
   5:      WHERE RegionID = 1
   6:      FOR XML PATH('Region'), TYPE) 
   7:      AS NVARCHAR(MAX) )
   8:  SELECT @xml

執行結果如下:

   1:  <Region>
   2:    <RegionID>1</RegionID>
   3:    <RegionDescription>Eastern</RegionDescription>
   4:  </Region>
  • 若您輸入一個不存在的 RegionID 會得到下列的結果:

  • 若您想要在查不到資料的時候顯示找不到資料而非 NULL,可以下列的 T-SQL 來達到這個目的:
   1:  DECLARE @xml  NVARCHAR(MAX) 
   2:  SET @xml =  CAST ( 
   3:      (SELECT ISNULL(t.td,'找不到資料')
   4:          FROM 
   5:          (
   6:          (SELECT RegionID,  LTRIM(RTRIM(RegionDescription)) AS RegionDescription
   7:          FROM  Region
   8:          WHERE RegionID = 10
   9:          FOR XML PATH('Region'), TYPE                
  10:      )) t(td))
  11:  AS NVARCHAR(MAX) )
  12:   
  13:  SELECT @xml

執行結果如下:

使用 FOR XML PATH 產生 XML 格式時,遇到 NULL 該如何處理?的更多相关文章

  1. 一个由正则表达式引发的血案 vs2017使用rdlc实现批量打印 vs2017使用rdlc [asp.net core 源码分析] 01 - Session SignalR sql for xml path用法 MemCahe C# 操作Excel图形——绘制、读取、隐藏、删除图形 IOC,DIP,DI,IoC容器

    1. 血案由来 近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“- ...

  2. for XML path 使用技巧

    FOR XML PATH 是sqlserver数据库的语法,能将查询出的数据转换成xml格式的数据. 首先,我们来看一个正常的查询: SELECT TOP 2 id, name,crDate FROM ...

  3. 使用SQL的FOR XML PATH('')将字段用逗号隔开

    FOR XML PATH('') 将查询结果显示为XML 经常用来将查询结果按逗号分隔后显示至某一字段 select * from Area结果 添加FOR XML PATH('')后 select ...

  4. FOR XML PATH实现小九九

    数据库环境:SQL SERVER2008R2 今天我们用SQL实现一下九九乘法表的功能. 实现的逻辑不是很复杂,难点在于怎么把想要的内容从同一列里头拼接到同一行上. 在这里,我们用到了FOR XML ...

  5. (4.28)for xml path 在合并拆分上的作用演示

    for xml path 用于合并与拆分 1.合并 很多时候需要在SQL Server中创建逗号分隔列表.这可以使用SQL Server的DOR XML PATH功能完成.与select语句一起使用时 ...

  6. 多列转1列 SqlServer 实现oracle10g的 wmsys.wm_concat()--for xml path('')

    有这么一个表 )) , 'aa') , 'bb') , 'aaa') , 'bbb') , 'ccc') , 'ddd') , 'fff')                               ...

  7. 数据库学习:for xml path

    一.开发环境 数据库:SQLServer2012 二.语法简介 for xml path它以xml形式展示查询的结果集 三.语法介绍 现在数据库中有一张表 1.基本语法 select * from B ...

  8. SQL SERVER数据库内 FOR XML PATH 函数用法

    把自己点点滴滴的学习记录下来!!!! 一.FOR XML PATH 简单介绍 那么还是首先来介绍一下FOR XML PATH ,假设现在有一张兴趣爱好表(TBJTXXCE)用来存放就诊患者信息,表结构 ...

  9. 利用XSD配合XSLT產出特定格式Word檔案 -摘自网络

    利用類別產生XSD檔 產出XSD檔的目的在於提供Word樣板設計之資料框架 在此使用微軟提供之XML Schema Definition Tool (Xsd.exe)工具產生XSD檔 1. 定義類別 ...

随机推荐

  1. am335xSD卡启动--文件系统制作

    1.网上下载busybox工具https://busybox.net/downloads/ 2.根据此文章提示制作自己的跟文件系统 链接: https://pan.baidu.com/s/1bp6GK ...

  2. centos7.3挂在移动硬盘(亲测)

    一 下载ntfs-3g wget https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2016.2.22.tgz 二 解压并安装 1 检测是否安装gcc r ...

  3. 详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式(ubuntu 16.04)

    启动mysql: 方式一:sudo /etc/init.d/mysql start 方式二:sudo service mysql start 停止mysql: 方式一:sudo /etc/init.d ...

  4. bzoj 2056: gift? 高精度?

    2056: gift? 高精度? Time Limit: 10 Sec  Memory Limit: 1 MB Description   Input 输入的第一行为一个整数t. 接下来t行,每行包含 ...

  5. Java反射机制涉及的类常见方法使用总结

    import java.lang.reflect.Constructor; import java.lang.reflect.*; /*Class:代表一个字节码文件的对象,每当有类被加载进内存,JV ...

  6. AJAX传递数组

    在前台中Jq代码中中用JSON.stringify()将数组转换成 JSON字符串.在后台用json_decode()将JSON字符串转换成数组. 1.JSON.stringify(value [, ...

  7. extjs用iframe的问题

    项目中用extjs做前提系统的界面是左边用树做目录 右边用tabpanel做内容展示点击树节点的时候 在tabpanel添加新的tab JScript code var newTab = center ...

  8. POJ 2417 Discrete Logging (Baby-Step Giant-Step)

    Discrete Logging Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 2819   Accepted: 1386 ...

  9. KD100遥控生成仪

    KD100是KEYDIY公司开发的一个强大的车用/民用遥控器生成工具,所生成的遥控器都具备不重码,质量稳定的特点. 通过采用英飞凌和NXP等公司开发的超级芯片,KD100巧妙的解决了各类型遥控器的兼容 ...

  10. SQL SERVER 函数与SQL语法

    http://www.cnblogs.com/hoojo/archive/2011/07/16/2108129.html