2017-09-07 4 views
2

私はSQL Serverを初めて使用しています。 mysqlのようなsubstring_indexが必要です。私は、sqlserverの部分文字列、partindexを使用しています。私は、SQL Serverの次のコメントを使用しています:sqlserverのmysqlのような部分文字列

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

結果:

select substring_index('13.1039901,80.1294101',',',1) ; 

結果:

13.1039901 

注: I

It gives empty result 

が、MySQLで

部分文字列cを知らないいくつかのケースで気になります。誰でもこの問題を解決するのを手伝ってください。

答えて

1

PATINDEXでこのパターンを使用すると、パターンが文字列全体と一致するため、このパターンは1を返します。
PATINDEXを結果に置き換えた場合、クエリはSUBSTRING('13.1039901,80.1294101', 1, 1)のようになります。

SUBSTRINGは次のようになります。
SUBSTRING (expression ,start , length)

これは、返す文字の開始インデックスが1(最初の段落を参照)であり、返す文字列の長さも1であることを意味します。
私はこれを自分でテストしませんでしたが、あなたの式が31039901,80.1294101のように1文字で返されると期待します。

は結果を得るために、あなたはあなたの結果としてコンマの前にすべてを与える必要があります
SELECT SUBSTRING('13.1039901,80.1294101', 1, CHARINDEX(',', '13.1039901,80.1294101') - 1)
を使用することができますを探しているように見えます。

このようにしてstartが文字列の先頭になり、lengthはコンマの位置になり、文字列がそこで切り取られます。

+0

ご連絡いただきありがとうございます。それは私にとってとても便利です。 –

関連する問題