如何在SQL Server中使用substring和PatIndex

时间:2016-12-02 02:57:35

标签: sql sql-server

如何对数据进行子串。例如,我有这样的数据:

"compileOnSave": true, 

我希望输出如下:

+----------------------+
|John123123412412wqeqw |
|May1231243334234wawdd |
|Jo02930124010284jahdj |
|dy827837127912938hygb |
+--------------------- +

截至目前,我还不了解如何在我的脚本中应用Substring和charindex。

提前致谢!

2 个答案:

答案 0 :(得分:3)

您可以尝试使用模式LEFTPATINDEX来匹配PATINDEX('%[0-9]%', 'John123123412412wqeqw')等数字。

示例代码

DECLARE @Text VARCHAR(500);
SET @Text = 'John123123412412wqeqw';

SELECT LTRIM(RTRIM(LEFT(@Text, PATINDEX('%[0-9]%', @Text) - 1)))

您可以从下表中执行此操作

SELECT 
   LTRIM(RTRIM(LEFT(ColumnName, PATINDEX('%[0-9]%', ColumnName) - 1))) 
FROM 
   [Table1]

答案 1 :(得分:1)

处理字符串的最佳方法是操作在应用程序端,而不是在数据库端。但是如果你需要这个,那么你可以使用PATINDEXSUBSTRING来获得你想要的东西,

SELECT PATINDEX('%[^0-9]%',stringValueCol) 'Position of NonNumeric String Position',
SUBSTRING(stringValueCol,PATINDEX('%[^0-9]%',stringVlaueCol),PATINDEX('%[^A-Z]%',stringValueCol)-1) 'NonNumeric String'
FROM
  myTable

但我仍然建议在代码中进行这种操作,而不是在数据库方面。