当前位置: 首页 > 面试题库 >

如果列中包含逗号分隔的值,请另作一行

韦寒
2023-03-14
问题内容

假设我们有一个简单的选择查询,返回的结果如下所示

   FirstName          LastName                     PayScale
   -----------        ------------                ---------------
    Craig              L                             150000
    Alice,Lisa         simons                        100000

因此,如果我们用逗号分隔名字,那么我想要这样的结果

   FirstName          LastName                     PayScale
   -----------        ------------                ---------------
    Craig              L                             150000
    Alice              simons                        100000
    Lisa               simons                        100000

问题答案:

您可以将查询编写为:

DECLARE @employee TABLE (FirstName  VARCHAR(100),
                         LastName   VARCHAR(100),
                         PayScale INT)

INSERT INTO @employee VALUES 
('Craig','L',150000) , 
('Alice,Lisa','simons',100000)



SELECT Split.a.value('.', 'VARCHAR(100)') AS FirstName  , LastName  ,PayScale
       FROM  (SELECT  CAST ('<M>' + REPLACE(FirstName, ',', '</M><M>') + '</M>' 
                             AS XML) AS FirstName ,  LastName    ,PayScale
               FROM  @employee) 
       AS A 
CROSS APPLY FirstName.nodes ('/M') AS Split(a)


 类似资料:
  • 问题内容: 我有一些特殊字符的字符串。目的是检索每行的String [](分隔)。您可以使用特殊字符“,在其中可以使用/ n和, 您会看到“ /”中有您/ n。 任何可以帮助我解析此。 谢谢 __更多说明 与主刺我需要分开这些 问题是:对于Julie,KameL,Titi ,在KameL和Titi之间存在换行符/ n,或者在Time,tomy,tony,tini之间存在类似的换行问题,或者 在to

  • 问题内容: 我试图通过首先从成功完成的列“ SupplierId”中转换逗号分隔的值来尝试连接两个表。但是,当我尝试通过外键“ DCLink”连接到另一个带有“供应商”名称的表“供应商”时,就会出现问题。 这就是我的意思: 原始表的选择语句, 得到这个结果 我可以使用此sql语句从SupplierId拆分列 并得到这些结果 但是,当我应用这段代码将InquiryDetails表连接到供应商名称上的

  • 我有一个PySpark数据帧,其中一列包含逗号分隔的值。该列包含的值的数量是固定的(例如4)。示例: 在这里,我想将col2拆分为4个单独的列,如下所示: 如何做到这一点?

  • 问题内容: 我需要运行类似的查询: 但是我希望子选择返回逗号分隔的列表,而不是数据列。这有可能吗?如果可以,怎么办? 问题答案: 您可以使用GROUP_CONCAT执行该操作,例如

  • 问题内容: 我返回的值包含255个逗号分隔的值。有没有一种简单的方法可以将其拆分为不具有255 substr的列? 到 问题答案: 您可以使用: 我建议您在Excel(或其他电子表格)中生成255个数字的列,并使用电子表格生成SQL代码。

  • 问题内容: 我的数据库中有列,其中的值如下所示: 在虚拟列中没有任何编号。逗号分隔的值可以出现。我尝试了以下查询,但它正在创建重复的结果。 我不明白这个问题。谁能帮忙? 问题答案: 非常适合我- 还有许多其他方法可以实现它。阅读将单个逗号分隔的字符串拆分成行。 *关于使用列而不是单个字符串值时的重复项的 *更新 。只见PRIOR子句中使用DBMS_RANDOM的摆脱循环回路的在这里 尝试以下方法