true 函數 (XQuery)
傳回 xs:boolean 值 True。 這相當於 xs:boolean("1")。
語法
fn:true() as xs:boolean
範例
本主題針對 XML 執行個體提供 XQuery 範例,這些執行個體是儲存在 AdventureWorks 資料庫的各種 xml 類型資料行中。
A.使用 true() XQuery 布林函數
下列範例會查詢不具類型的 xml 變數。 如果 "aaa" 是屬性值,則 value() 方法中的運算式會傳回布林值 true()。 xml 資料類型的 value() 方法會將布林值轉換成位元 (bit) 並將它傳回。
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 結構描述集合,在其中定義 xs:boolean 類型的 <ROOT> 元素。
使用 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