• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    數據庫如何將一列的值,拼接為逗號分隔的字符串

    在做報表的時辰,可能需要將查詢成果某一列的多行記實,利用逗號分隔,拼接當作一個字符串。這個時辰,該若何實現呢?好比,在bom表中,將查詢成果的物料編碼列,拼接當作一個字符串,并且,字符串中物料編碼不反復

    東西/原料

    • sqlserver

    方式/步調

    1. 1

      建立一個姑且表,用于演示sqlserver數據庫中,若何將一個字段的數據拼接當作一個字符串。例如:將物料清單表中的物料編碼,利用逗號分隔,拼接當作一個字符串

      IF OBJECT_ID('tempdb..#tblBom') IS NOT NULL DROP TABLE #tblBom; 

      CREATE TABLE #tblBom(

          OrderNo varchar(50),       -- 訂單號

          ItemCode varchar(50),      -- 物料編碼

          ItemName varchar(50)     -- 物料名稱   

      );

    2. 2

      往姑且表中插入幾行測試數據,模擬物料清單

      insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019001', 'MC001', '物料1');

      insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019001', 'MC002', '物料2');

      insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019001', 'MC003', '物料3');

      insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019002', 'MC001', '物料1');

      insert into #tblBom(OrderNo, ItemCode, ItemName) values('PO2019003', 'MC005', '物料5');

    3. 3

      查詢姑且表1中的測試數據

      select * from #tblBom;

    4. 4

      假設表中的數據很少,并且,需求也是要將所有的物料編碼,利用逗號拼接起來,那么,就可以利用for xml path語法

      select ',' + ItemCode from #tblBom  for xml path('')

    5. 5

      從上面的成果可以看出,不異的物料編碼,在字符串中反復呈現了,那么,若何才能拼接不反復的物料編碼呢?其實,直接加上去重關頭字distinct就可以了

      select distinct ',' + ItemCode from #tblBom  for xml path('')

    6. 6

      上面的物料編碼固然去重了,可是,拼接的字符串最前面是以逗號起頭的,若何才能去失落這個逗號呢?這個時辰,就需要利用stuff函數了

      select (stuff((select distinct ',' + ItemCode from #tblBom  for xml path('')),1,1,''))

    7. 7

      上面都是查詢整個表的成果,現實利用時,經常需要按照必然的前提過濾,這個時辰就需要利用聯系關系語句了

      select ItenCode = (select stuff((select distinct ',' + ItemCode from #tblBom where OrderNo = tbl.OrderNo for xml path('')), 1, 1, ''))

      from #tblBom tbl

      where tbl.OrderNo = 'PO2019001'

      group by tbl.OrderNo

    • 發表于 2019-05-28 22:02
    • 閱讀 ( 1162 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆