【问题标题】:Split on colons in SQL Server在 SQL Server 中拆分冒号
【发布时间】:2010-10-02 09:18:12
【问题描述】:

我在 SQL 表中有一个列,其中包含如下数据:

“学院:皇后镇学院”“大学:昆士兰大学”

":" 之前的文本可能不同。那么,如何从列中仅选择 ":" 之前的文本和 ":(space)" 之后的文本?

【问题讨论】:

    标签: sql sql-server split


    【解决方案1】:

    您可能应该考虑将表放入first normal form,而不是在同一列中存储 2 条数据...

    ;with yourtable as
    (
    select 'College: Queenstown College' as col UNION ALL
    select 'University: University of Queensland'
    )
    select 
         left(col,charindex(': ',col)-1) AS InstitutionType,
         substring(col, charindex(': ',col)+2, len(col)) AS InstitutionName
    from yourtable
    

    【讨论】:

    • ":"后面的文字是否可以获取?
    【解决方案2】:

    使用charindexsubstring 函数:

    substring(theField, 1, charindex(':', theField) - 1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-11
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多