Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sqlserver中类似mysql的子字符串_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server sqlserver中类似mysql的子字符串

Sql server sqlserver中类似mysql的子字符串,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我是sql server的新手。我需要像mysql一样的子字符串索引。我正在为sqlserver使用子字符串partindex。我在sql server中使用以下注释: select substring('13.1039901,80.1294101',PATINDEX('%13.1039901,80.1294101%',','),1); 结果: It gives empty result 13.1039901 但在mysql中: select substring_index('13.103

我是sql server的新手。我需要像mysql一样的子字符串索引。我正在为sqlserver使用子字符串partindex。我在sql server中使用以下注释:

select substring('13.1039901,80.1294101',PATINDEX('%13.1039901,80.1294101%',','),1);
结果:

It gives empty result
13.1039901
但在mysql中:

select substring_index('13.1039901,80.1294101',',',1) ;
结果:

It gives empty result
13.1039901
注:
我不知道某些情况下的子字符串计数。任何人请帮助我解决此问题。

如果您在PATINDEX中使用此模式,它应该返回1,因为该模式与您的整个字符串匹配。
因此,如果用结果替换PATINDEX,则查询看起来像
子字符串('13.1039901,80.1294101',1,1)

现在子字符串的工作方式如下:
子字符串(表达式、开始、长度)

这意味着要返回的字符的起始索引为1(请参见第一段),并且要返回的字符串的长度也为1。
我自己没有测试这个,但我希望您的表达式返回字符1,如13.1039901,80.1294101所示

要获得您似乎正在寻找的结果,您可以使用
选择子字符串('13.1039901,80.1294101',1,CHARINDEX(',','13.1039901,80.1294101')-1)

结果应该是逗号之前的所有内容


这样,
start
是字符串的开头,
length
是逗号的位置,因此字符串在此处被截断。

感谢您的即时回复。这对我很有用。