sql - 如何在第一个重复字符之前提取 SQL 中的部分字符串?
问题描述
我在 SQl 行中有以下混合值。
322600;323800;325000;326200;327400;329200
0;0;0;0;0;0
1184168;1188182;1192196;1196210;1200224;1204238
0;0;0;0;0;0
0;0;0;0;0;0
我只需要在第一个分号之前获取值,即
322600
0
1184168
0
0
我努力了:
,LEFT ([UtilizeProperties],CHARINDEX(';',[CalcTotGrossIncome])-1)
但我只得到 3 个第一位数字
,SUBSTRING([UtilizeProperties],CHARINDEX(';',[UtilizeProperties])-1,LEN([UtilizeProperties])-CHARINDEX(';',[UtilizeProperties]))
将我的第一个值设为 0 和
,SUBSTRING([UtilizeProperties],CHARINDEX(';',[UtilizeProperties])+1,LEN([UtilizeProperties]))
把他们完全带走。
感谢您的善意建议。
我使用 SQL 服务管理工作室
解决方案
LEFT
您的第一种方法是正确的,除非您在和中使用不同的列CHARINDEX
。像这样改变:
LEFT(UtilizeProperties, NULLIF(CHARINDEX(';', UtilizeProperties), 0) - 1)
推荐阅读
- azure - 如何隐藏 Azure Bot 服务的密钥
- java - Ignite 服务器节点出现 OOM,在 ConcurrentMap、TcpCommunicationSpi#recoveryDescs 中有大量积累
- lua - 当小数点后没有数字时,Lua math ceil 将数字四舍五入
- c# - 单击禁用按钮后,如何防止 TextBox 或 RichEditBox 失去焦点?
- python - 使用 Pandas 查找重复行并将其重新整形为一行
- php - 在 Laravel 中以多步形式通过 AJAX 请求获取值时出错
- c# - 如何使用 C# 中的两个文本框将两个条目插入数据库
- jquery - 我无法上传文件,因为它在 Asp.net 中使用带有 Jquery 的 AJAX 很大
- javascript - Firebase 数据库以编程方式检查下载的数据大小
- android - 如何在活动的android服务中获取变量的值?