共用方式為


布林建構函式 - true (XQuery)

適用於:SQL Server

傳回 xs:boolean 值 True。 這相當於 xs:boolean("1")

語法

fn:true() as xs:boolean  

範例

本主題針對 AdventureWorks 資料庫中各種 xml 類型數據行中儲存的 XML 實例,提供 XQuery 範例。

A. 使用 true() XQuery 布爾函數

下列範例會查詢不具 類型的 xml 變數。 如果 「aaa」 是屬性值,value() 方法中的表達式會傳回 Boolean true()。 xml 資料類型的 value() 方法會將布爾值轉換成位,並傳回它。

DECLARE @x XML  
SET @x= '<ROOT><elem attr="aaa">bbb</elem></ROOT>'  
select @x.value(' if ( (/ROOT/elem/@attr)[1] eq "aaa" ) then fn:true() else fn:false() ', 'bit')  
go  
-- result = 1  

在下列範例中,會針對具類型的 xml 資料行指定查詢。 表達式會 if 檢查專案的具型別布爾值 <ROOT> ,並據以傳回建構的 XML。 此範例會執行下列動作:

  • 建立 XML 架構集合,這個集合會 <ROOT> 定義 xs:boolean 類型的專案。

  • 使用 XML 架構集合,建立具有具型 別 XML 資料行的數據表。

  • 將 XML 實例儲存在數據行中,並加以查詢。

-- Drop table if exist  
--DROP TABLE T  
--go  
DROP XML SCHEMA COLLECTION SC  
go  
CREATE XML SCHEMA COLLECTION SC AS '  
<schema xmlns="http://www.w3.org/2001/XMLSchema"  
targetNamespace="QNameXSD" >  
      <element name="ROOT" type="boolean" nillable="true"/>  
</schema>'  
go  
CREATE TABLE T (xmlCol XML(SC))  
go  
-- following OK  
insert into T values ('<ROOT xmlns="QNameXSD">true</ROOT>')  
 go  
-- Retrieve the local name.   
SELECT xmlCol.query('declare namespace a="QNameXSD";   
   if (/a:ROOT[1] eq true()) then  
       <result>Found boolean true</result>  
   else  
       <result>Found boolean false</result>')  
  
FROM T  
-- result = <result>Found boolean true</result>  
-- Clean up  
DROP TABLE T  
go  
DROP XML SCHEMA COLLECTION SC  
go  

另請參閱

布林建構函式 (XQuery)