zoukankan      html  css  js  c++  java
  • SQL拼接字段数据

    查询语句:

    SELECT 
    STUFF
    (
        (
            SELECT 
            ',' + --分隔符 
         KeyID --查询字段 FROM #tmp --查询数据表 WITH(NOLOCK) WHERE 1=1 --查询条件 FOR XML PATH('') ), 1,-- 0:NULL 1:原样输出 2++:首位添加分隔符 1,-- N:截取 N - Len 的字符 ''-- 在字符串首尾添加的符号 )

    测试语句:

    IF EXISTS(SELECT * FROM tempdb..sysobjects where id=object_id('tempdb..#tmp')) --判断临时表【#tmp】是否存在
    BEGIN
        DROP TABLE #tmp  --删除临时表
    END
    
    
    CREATE TABLE #tmp --创建临时表
    (
        KeyID VARCHAR(36),
        KeyValue VARCHAR(max)
    )
    
    --项临时表插入测试数据
    INSERT INTO #tmp VALUES(newid(),'数据一')
    INSERT INTO #tmp VALUES(newid(),'数据二')
    
    --查询语句
    
    --单个字段
    SELECT 
    STUFF
    (
        (
            SELECT 
            ',' + --分隔符
            KeyID --查询字段
            FROM #tmp --查询数据表
            WITH(NOLOCK) 
            WHERE 1=1 --查询条件
            FOR XML PATH('')
        ),
        1,-- 0:NULL 1:原样输出 2++:首位添加分隔符
        1,-- N:截取 N - Len 的字符
        ''-- 在字符串首尾添加的符号
    )
    
    /*--多字段组合
    SELECT 
    STUFF
    (
        (
            SELECT 
            ',KeyID:'+ KeyID + ';KeyValue:' + KeyValue --查询字段
            FROM #tmp --查询数据表
            WITH(NOLOCK) 
            WHERE 1=1 --查询条件
            FOR XML PATH('')
        ),
        1,-- 0:NULL 1:原样输出 2++:首位添加分隔符
        1,-- N:截取 N - Len 的字符
        ''-- 在字符串首尾添加的符号
    )
    */

     查询结果(注:具体结果由自动生成的KeyID决定):

      1、单字段:

        1B0EC911-5C2B-4FDE-87BB-62981DE2030D,0527DF18-9EDD-484D-B770-B24B13C68CA1

      2、多字段组合:

        KeyID:33C28B1E-3F75-4119-A944-1DB7541088E0;KeyValue:数据一,

        KeyID:4ECF1696-7DB6-43C7-8182-22EEF676E2CF;KeyValue:数据二

     说明:

      1、数据库表与临时表查询方式一样,替换表和字段即可,谢谢。

    完美,只是因为简单。
  • 相关阅读:
    Kafka Eagle安装
    CentOS下OpenJDK设置JAVA_HOME
    设计模式:解释器模式
    Typora主题推荐
    SpringMVC的<mvc:annotation-driven />
    SpringMVC的视图解析器
    数字化营销
    《计算广告》第二版思维导图
    舆情计算
    实时数仓
  • 原文地址:https://www.cnblogs.com/jschar/p/6142055.html
Copyright © 2011-2022 走看看