sqlserver 中 xml欄位的讀寫操作
【有此欄位 xy <x a="a" b="b"> 此時 要查詢a屬性的值 ,sql為:SELECT xy.value('(/x/@a)[1]','VARCHAR(8)')】
1.建立xml欄位
在表xmlTest內建立一個欄位,命名_x,設定資料型別為xml。
2.寫入xml
insert into xmlTest (_x) values('
<root>
<item attr1="a1" attr2="a2">item11</item>
<item attr1="a1" attr2="a2">item12</item>
</root>
')
go
如此再插入一條記錄:
insert into xmlTest (_x) values('
<root>
<item attr1="b1" attr2="b2">item21</item>
<item attr1="b1" attr2="b2">item22</item>
</root>
')
3.查詢資料
3.1 查詢欄位所有資料
select _x from xmlText
3.2 查詢root下面的第一個item節點
select _x.query('root/item[1]')
from xmlTest
3.3 查詢root下面的第一個item節點的值
select _x.value('(root/item)[1]','varchar(50)')
from xmlTest
3.3 查詢root下面的第二個item節點的attr2屬性值
select _x.value('()
from xmlTest
3.4 查詢表中每條記錄的xml欄位的item節點值,全部列出來
SELECT t2.c1.value('.','varchar(20)') as items
from xmlTest
cross apply _x.nodes('root/item') as t2(c1)
3.5 查詢表中id=1記錄的xml的所有item欄位的attr2屬性值
SELECT t2.c1.value() as attr2
from xmlTest
cross apply _x.nodes('root/item') as t2(c1)
where id='1'
3.6 查詢id為1的所有節點中attr1屬性為a1的第一個匹配節點的attr2屬性值
select _x.value('(root/item[@attr1="a1"]/@attr2)[1]','varchar(50)')
from xmlTest where id='1'
3.7 多表查詢
例如:存在另外1個table:t2,其欄位xmlid關聯表xmlTest,而attr1關聯xmlTest的_x欄位中的attr1屬性值。
查詢表xmlTest中id=‘1'記錄中_x欄位內item節點中attr1為表t2中attr1欄位值時,item節點中attr2的屬性值
select xmlTest._x.value('(root/item[@attr1=sql:column("t2.attr1")]/@attr2)[1]','varchar(50)') as attr2,t2.attr1
from xmlTest join t2 on t2.xmlid=xmlTest.id
where xmlTest.id='1'
4.修改資料
4.1 修改表中id=1記錄的第一個item節點值
UPDATE xmlTest
set _x.modify('replace value of (root/item/text())[1] with "xxxxx"')
where id='1'
select _x.query('root/item[1]') as item1
from xmlTest
4.2 修改表中id=2記錄的第二個item節點的attr2屬性值
UPDATE xmlTest
set _x.modify('replace value of (] with "2222b"')
where id='2'
select _x.query('root/item[2]') as item1
from xmlTest
相關推薦
sqlserver 中 xml欄位的讀寫操作
sqlserver2005 xml欄位的讀寫操作 【有此欄位 xy <x a="a" b="b"> 此時 要查詢a屬性的值 ,sql為:SELECT xy.value('(/x/@a)[1]','VARCHAR(8)')】 1.建立xml欄位 在表xmlTest內建立一個欄位,命名_x,設定資料
tinyxml對xml簡單的讀寫操作
背景:如果xml配置檔案存在,直接讀取配置,如果不存在需要建立一個xml檔案,寫入預設的配置的配置。 判斷xml是否存在 #define CONFIG_FILE "conf.xml" void Config::initConfig() { if(access(CONFIG_F
利用反射給JavaBean中的屬性進行讀寫操作類PropertyDescriptor
概述 PropertyDescriptor描述Java Bean中通過一對儲存器方法(getter / setter)匯出的一個屬性。我們可以通過該PropertyDescriptor對bean中的該屬性進行讀取和寫入操作,也可以設定其getter / setter。
如何顯示sqlserver中image欄位型別的圖片
我現在在ruby中已經把圖片儲存到資料庫中,但是讀不出來,我是這樣寫的def picture @rypicture = RyPicture.find(params[:id]) send_data(@rypicture.data,
java中的File檔案讀寫操作
之前有好幾次碰到檔案操作方面的問題,大都因為時間太趕而沒有好好花時間去仔細的研究研究,每次都是在百度或者部落格或者論壇裡面參照著大牛們寫的步驟照搬過來,之後再次碰到又忘記了,剛好今天比較清閒,於是就在網上找了找Java常用的file檔案操作方面的資料。之後加以一番整理,現分
python中 對檔案的讀寫操作 以及如何邊寫入 邊儲存flush()
首先 python中開啟檔案大致常用的幾類如下: 1.寫入檔案write #這種寫入方式會將原文字刪除,重新寫入 File = open("test.txt",'w') 2.讀取檔案read File = open("test.txt",'a+')
Java中對檔案的讀寫操作
像我們經常會遇到這樣的事情,例如一個txt檔案中有姓名和電話,這個時候很經常就需要將名字和電話號碼進行提取操作,這個時候就可以利用Java中io來實現了。 這裡我就不具體介紹io中的位元組流和字元流的異同點了,有興趣的同學可以自己百度百度。 今天主要是介紹一下如何實現對檔案
在jsp中進行檔案的讀寫操作
1.實驗目的 本實驗的目的是掌握怎樣在JSP中進行檔案的讀寫操作。 2.實驗內容 編寫三個JSP頁面giveContent.jsp,writeContent.jsp、readContent.jsp以及兩個Tag檔案WriteTag.tag和ReadTag.
【java 文件讀寫操作】 生成隨機數,寫入txt,然後從txt中讀出
進行 rac 直接 生成隨機數 catch trace buffered 代碼 tac 1.把生成的隨機數寫入到文件中 1 public static void WriterFun(){ 2 //獲得路徑 3 String filep
mysql中查詢欄位為null或者不為null的sql語句怎麼寫?
在mysql中,查詢某欄位為空時,切記不可用 = null,而是 is null,不為空則是 is not null select * from table where column is null; select * from table where column is not null; se
SqlServer如何判斷欄位中是否含有漢字?
--/* --unicode編碼範圍: --漢字:[0x4e00,0x9fa5](或十進位制[19968,40869]) --數字:[0x30,0x39](或十進位制[48, 57]) --小寫字母:[0x61,0x7a](或十進位制[97, 122]) --大寫字母:[0x41,0x5a](
介面測試系列:工作中所用(十:配置檔案的讀寫操作 configparser模組)
global_cache.py # -*- codeding: utf-8 -*- import configparser import hashlib import os from common.base import ENV class globalInfo: def get_
C#中檔案的讀寫操作
一.檔案的讀取: 1.匯入名稱空間 using System.IO; 2.獲取檔案流 FileStream fs=new File(path,FileMode.Open); 3.獲取讀物件 StreamReader sr=new Stream
oracle寫一個先插入一條資料,在將該資料中一個欄位更新的觸發器的坑
最近剛用使用觸發器,原理上應該是在插入之後再更新,原本以為是以下這種寫法,在網上也找了很多方法,結果說的都不太對.需要更新的欄位根本沒有被更新,我想應該是邏輯上的問題: create or replace trigger UPDATE_REDLIST_TYPE afte
opencv學習(十七)之XML和YAML檔案讀寫操作
可能大部分人到現在接觸的XML和YAML檔案很少,等以後訓練人臉模型進行人臉識別的時候用的就多了。現在先了解一下這兩種檔案型別。 XML:Extensible Markup Language,可擴充套件標記語言,標準通用語言的子集,是一種用於標記電子檔案使其具
opencv學習筆記(二)-對xml和yaml檔案的讀寫操作
一.xml和yaml的簡單介紹 所謂的xml,就是eXtensible Markup Language, 翻譯成中文就是“可擴充套件標識語言“。首先XML是一種元標記語言,所謂“元標記”就是開發者可以根據自己的需要定義自己的標記,比如開發者可以定義如下標記&
{dede:sql}標籤中,取出欄位後,對欄位進行邏輯操作時的巢狀方法
<div>{dede:sql sql='select body from dede_addonarticle where typeid=4 order by rand() LIMIT 1'} [field:body runphp='yes']
在C++檔案讀寫操作中,seekg()和seekp()是一樣的功能
如果是fstream定義的物件,則seekg()和seekp()是一樣的功能,還有tellp和tellg seekg是從ifstream類裡繼承來的 seekp是從ofstream類繼承來的 兩者的功能在fstream裡都是定位讀寫指標 char s1[30]={'\0'
java語言中對檔案基本的讀寫操作
public static void main(String[] args) { File cfile = new File("newnewtest.txt"); if(cfile.exists()){ try { FileInputStream fis = new FileInput
使用C++檔案流庫fstream,讀寫操作十六進位制文字檔案
最近為智慧移動小車編寫上位機軟體的過程中,遇到了檔案讀寫處理的任務,檔案是一般的文字檔案.txt格式的,其內容由十六進位制資料組成。檔案內資料的格式如下: FF FD 03 FD 77 FE 77 1C 27 FF FD 01 FE 00 FE 00 1E 28 FF FE