有一个字符串的值有4段内容组成,每一段之间有横杠,现在需要依据横杠将每一段分割为一列。
如:银行存款-房产公司-无锡远达-建行00206
写法:
- DECLARE @str VARCHAR(100) = '银行存款-房产公司-无锡远达-建行00206';
- SELECT
- -- 第一段银行存款
- SUBSTRING(@str, 1, CHARINDEX('-', @str) - 1) AS 科目,
-
- -- 第二段房产公司
- SUBSTRING(
- @str,
- CHARINDEX('-', @str) + 1,
- CHARINDEX('-', @str, CHARINDEX('-', @str) + 1) - CHARINDEX('-', @str) - 1
- ) AS 公司类型,
-
- -- 第三段无锡远达
- SUBSTRING(
- @str,
- CHARINDEX('-', @str, CHARINDEX('-', @str) + 1) + 1,
- CHARINDEX('-', @str, CHARINDEX('-', @str, CHARINDEX('-', @str) + 1) + 1) -
- (CHARINDEX('-', @str, CHARINDEX('-', @str) + 1) + 1)
- ) AS 公司,
-
- -- 第四段建行00206
- SUBSTRING(
- @str,
- CHARINDEX('-', @str, CHARINDEX('-', @str, CHARINDEX('-', @str) + 1) + 1) + 1,
- LEN(@str)
- ) AS 账户;
复制代码
结果:
科目 | 公司类型 | 公司 | 账户 | 银行存款 | 房产公司 | 无锡远达 | 建行00206 |
|
|
快表帝国客服01