SQL對(duì)XML字段的操作

定義XML字段

create table FormAnswers(
  answerid int identity(1,1) not null,
  files xml null
)

files字段是XML字段歌殃,可能為NULL舆吮,不為null的時(shí)候外莲,結(jié)構(gòu)如下:

<package/>

或者

<package>
  <file id="1" name="附件1" description=""/>
</package>

假如我們想要查找所有附件個(gè)數(shù)大于1的數(shù)據(jù),SQL如下:

select * from formanswers where convert(char(100),files.query('count(/package/file)'))>1

更多SQL對(duì)XML字段的操作可以參考文章 SQL對(duì)Xml字段的操作

select * from Answers where XmlFiles.value('count(/package/file)','int')>1

package的結(jié)構(gòu)如下:

<package addnewattchment="1">
  <file id="1" name="111111" version="" versionDate="" description="若有" type="2" fileCode="778EBD67-AE27-4450-9614-C8AF11168346" fileName="aaa.docx" options="2" projectID="74" code="" editdate="2018年11月12日 10:40:07" template="" disabled="" />
  <file id="2" name="222" version="" versionDate="" description="若有" type="2" fileCode="E3EC30E4-BE95-4A95-BF6F-56C952F2B410" fileName="bbb.docx" options="2" projectID="74" code="" editdate="2018年11月12日 10:40:07" template="" disabled="" />  
</package>

獲取所有文件名為aaa的版本號(hào):

SELECT ROW_NUMBER() OVER(partition BY ProjectID ORDER BY ORGRequestAnswerID ASC ) AS rid,a.ProjectID,
m.c.value('@name', 'varchar(max)') as name,
 m.c.value('@version', 'varchar(max)') as versionNum 
 FROM dbo.ORGRequestAnswers as a outer apply a.PackageXml.nodes('package/file') as m(c) WHERE DeletedDate IS NULL AND ObjectType='request' AND m.c.value('@name', 'varchar(max)') ='aaa'

data的結(jié)構(gòu)如下:

<data>
  <question id="txtProjectName">19年1月測(cè)試</question>
  <question id="txtBusiness">上海交通大學(xué)醫(yī)學(xué)院附屬第九人民醫(yī)院</question>
  <question id="txtStudyID">11111</question>
  <question id="txtStore">口腔正畸科</question>
  <question id="txtPI">測(cè)試</question>
  <question id="txtTotalBudget">100</question>
  <question id="txtUnplanedBudget">100</question>
  <question id="txtDistributedBudget">100</question>
  <question id="tblList">
    <row id="1">
      <td id="Name">a</td>
      <td id="Money">100</td>
      <td id="Number" />
      <td id="CardNo" />
      <td id="Remark" />
    </row>
    <row id="2">
      <td id="Name">b</td>
      <td id="Money">300</td>
      <td id="Number" />
      <td id="CardNo" />
      <td id="Remark" />
    </row>
    <row id="3">
      <td id="Name">c</td>
      <td id="Money">3100</td>
      <td id="Number" />
      <td id="CardNo" />
      <td id="Remark" />
    </row>
  </question>
  <question id="txtTotalMoney">3500</question>
</data>

獲取所有id為Money的值

SELECT T2.lin.value('(td[@id="Money"])[1]', 'int') AS moneyAcount
FROM   (SELECT Result.query('data/question[@id="tblList"]') AS xmlSmartTable FROM dbo.BalanceRequestAnswers WHERE BalanceRequestID=(SELECT ObjectID FROM dbo.WorkflowInstances WHERE WorkflowInstanceID={0})) resultSmartTable
CROSS APPLY xmlSmartTable.nodes('/question/row') as T2(lin)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末降铸,一起剝皮案震驚了整個(gè)濱河市在旱,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌推掸,老刑警劉巖桶蝎,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異谅畅,居然都是意外死亡登渣,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門毡泻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)胜茧,“玉大人,你說(shuō)我怎么就攤上這事牙捉≈褡幔” “怎么了敬飒?”我有些...
    開(kāi)封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)芬位。 經(jīng)常有香客問(wèn)我无拗,道長(zhǎng),這世上最難降的妖魔是什么昧碉? 我笑而不...
    開(kāi)封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任英染,我火速辦了婚禮,結(jié)果婚禮上被饿,老公的妹妹穿的比我還像新娘四康。我一直安慰自己踱阿,他們只是感情好哑芹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著瞳腌,像睡著了一般论颅。 火紅的嫁衣襯著肌膚如雪哎垦。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天恃疯,我揣著相機(jī)與錄音漏设,去河邊找鬼。 笑死今妄,一個(gè)胖子當(dāng)著我的面吹牛郑口,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盾鳞,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼犬性,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了雁仲?” 一聲冷哼從身側(cè)響起仔夺,我...
    開(kāi)封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎攒砖,沒(méi)想到半個(gè)月后缸兔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吹艇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年惰蜜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片受神。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡抛猖,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情财著,我是刑警寧澤联四,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站撑教,受9級(jí)特大地震影響朝墩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜伟姐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一收苏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧愤兵,春花似錦鹿霸、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至屹堰,卻和暖如春葛闷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背双藕。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阳仔,地道東北人忧陪。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像近范,于是被迫代替她去往敵國(guó)和親嘶摊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 關(guān)于Mongodb的全面總結(jié) MongoDB的內(nèi)部構(gòu)造《MongoDB The Definitive Guide》...
    中v中閱讀 31,905評(píng)論 2 89
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法评矩,類相關(guān)的語(yǔ)法叶堆,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法斥杜,異常的語(yǔ)法虱颗,線程的語(yǔ)...
    子非魚_t_閱讀 31,598評(píng)論 18 399
  • 世間多少真情意忘渔,最難得不過(guò)同甘苦。 感謝富強(qiáng)口才的郝美琪老師缰儿,崔立新老師畦粮,我最可愛(ài)的同事。 辛苦了一個(gè)冬季,終于在...
  • (聲明:文章來(lái)源于網(wǎng)絡(luò),真實(shí)性不做保證儒将,只為讓女性朋友擦干眼睛) 我無(wú)法在現(xiàn)實(shí)中和身邊人講起吏祸,所以就在網(wǎng)絡(luò)上求助了...
    暖冰大人閱讀 461評(píng)論 0 0
  • 在一個(gè)石獅子上,它那兇猛的神情使我覺(jué)得:這只石獅十分兇猛,而且使我害怕椅棺。 這只石獅子腳踩在花崗巖上...
    顧小狗谷傳禹閱讀 827評(píng)論 0 0