首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用How函数时使换行符中断

如何在使用How函数时使换行符中断
EN

Stack Overflow用户
提问于 2021-12-14 02:33:53
回答 1查看 31关注 0票数 1

我有一个stuff函数,它连接多个记录,并且在每秒钟记录之后放一个中断行,它在这个查询中工作得很好:

代码语言:javascript
复制
STUFF((
    SELECT   CASE WHEN ROW_NUMBER() OVER (order by new_name) % 2 = 1 THEN CHAR(10) ELSE ',' END +   new_name
    FROM new_subcatagories
       FOR XML PATH('')), 1, 1, '')

结果是

代码语言:javascript
复制
Auditory,Kinesthetic  vestibular  
Multitasking,Planning & organization  
Proprioception,Tactile  
Vestibular tactile,Visual  

但是,现在我想用另一篇我需要区分的专栏来实现它,但我无法让它工作,我的查询是:

代码语言:javascript
复制
STUFF((
    SELECT  distinct (CASE WHEN ROW_NUMBER() OVER (order by new_maincatgoriesname) % 2 = 1 THEN CHAR(10) ELSE ',' END
    +    new_maincatgoriesname)
       FOR XML PATH('')), 1, 1, '')

我得到的结果是多种非预期的方式,例如

代码语言:javascript
复制
Executive Function
Sensory  Discrimination
Sensory modulation ,Multitasking,Sensory  Discrimination,Sensory modulation

或者其他意想不到的方式,我希望结果是

代码语言:javascript
复制
Executive Function,Sensory Discrimination          
Sensory modulation,Multitasking

如果有人能帮我,我们会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-14 07:10:40

DISTINCT适用于整个行,因此使用不需要的数据(如ROW_NUMBER())填充额外的列会产生无效的结果。

要修复它,您需要添加另一个查询嵌套级别。

代码语言:javascript
复制
DECLARE @Blah TABLE( new_maincatgoriesname VARCHAR( 200 ))
INSERT INTO @Blah
VALUES( 'Executive Function' ), ( 'Sensory Discrimination' ), ( 'Multitasking' ),
    ( 'Sensory Discrimination' ), ( 'Executive Function' ), ( 'Sensory modulation' )

SELECT
    STUFF( CAST((
    -- Step 2: manipulate result of Step 1
    SELECT (CASE WHEN ROW_NUMBER() OVER (order by new_maincatgoriesname) % 2 = 1 THEN CHAR(10) ELSE ',' END + new_maincatgoriesname )
    FROM
        -- Step 1: Get distinct values
        ( SELECT DISTINCT new_maincatgoriesname
        FROM @Blah ) AS MainQuery
      FOR XML PATH('') ) AS VARCHAR( 2000 )), 1, 1, '' )

输出:

代码语言:javascript
复制
Executive Function,Multitasking
Sensory Discrimination,Sensory modulation
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70343129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档