How to Split SQL string with (# and ;)?

如何使用(#和;)分割SQL字符串?

Billing Column where string is saved in below format

账单列,其中字符串保存为以下格式

548784545S#15/01/2016;84854555545#13/01/2016;45454554545#21/01/2016

Split # and ; I want below format

分手#;我想要下面的格式

548784545S    15/01/2016
84854555545  13/01/2016
45454554545  21/01/2016

So Far what i did

到目前为止我所做的

SELECT SUBSTRING(CNT_SHIPPING_BILLNO, 1,
            CASE CHARINDEX('#', CNT_SHIPPING_BILLNO)
               WHEN 0
                   THEN LEN(CNT_SHIPPING_BILLNO)
               ELSE CHARINDEX('#', CNT_SHIPPING_BILLNO) - 1
           END)
       AS Billno,
       SUBSTRING(CNT_SHIPPING_BILLNO,
           CASE CHARINDEX('#', CNT_SHIPPING_BILLNO)
               WHEN 0
                   THEN LEN(CNT_SHIPPING_BILLNO) + 1
               ELSE CHARINDEX(';', CNT_SHIPPING_BILLNO) + 1
           END, 1000) AS BillDate
FROM SHIPPINGBILL

Here I am getting only initial Value using above Query

这里我只使用上面的查询获得初始值

548784545S    15/01/2016;84854555545#13/01/2016;45454554545#21/01/2016

5 个解决方案

#1


5

DECLARE @t VARCHAR(MAX) = '548784545S#15/01/2016;84854555545#13/01/2016;45454554545#21/01/2016'

;WITH cte AS (
    SELECT x = CONVERT(XML,'<p>' + REPLACE(@t, ';', '</p><p>') + '</p>')
)
SELECT PARSENAME(val, 2), PARSENAME(val, 1)
FROM (
    SELECT val = REPLACE(t.c.value('.', 'VARCHAR(MAX)'), '#', '.')
    FROM cte
    CROSS APPLY x.nodes('p') t(c)
) t

Output -

输出-

--------------- ------------
548784545S      15/01/2016
84854555545     13/01/2016
45454554545     21/01/2016

更多相关文章

  1. 如何用sql语言只获得数据库当前日期,且格式为"yyyy-mm-dd"?
  2. ORACLE-SQL:定义并使用多字符串变量
  3. 3、Oracle PL/SQL中Date格式及格式转换
  4. 关于mysql对字符串的数字的排序
  5. 不正确的字符串值:'\xF0\x9F\ xB6\xF0\x9F…' MySQL。
  6. 如何生成字符串'a'..'zzz'然后将它们保存到表中?
  7. SQL当执行插入操作时,字符串含有''的时候的处理
  8. 利用Shell脚本将MySQL表中的数据转化为json格式
  9. oracle --sql--转换表字段日期格式(年月日时分秒转换年月日)

随机推荐

  1. PHP-从多维数组中删除重复值
  2. php异常和错误处理
  3. 最好的PHP IDE和PHP文本编辑器合集
  4. php 顶部偶尔出现一个乱码字符?
  5. PHP如何获得地址栏的特殊字符呢?
  6. 使用PHP显示所有列条目
  7. ThinkPHP5.0框架开发--第10章 TP5.0验证
  8. 在Amazon EC2 linux AMI上安装FFMPEG-Php
  9. php的控制器链
  10. 仅在两个字符串之间移除空白。