私は左にデータを取得しようとしています - 私は抽出テキスト
LocationName
CCC-CC36-A
5N-N577-A
5N-N577-A
5N-N577-A
2T-225-A
PE-020-A
select
LEFT(LocationName, LEN(LocationName) - CHARINDEX('-',LocationName)-1),
EncounterNumber
from #TubeRateQty
私は左にデータを取得しようとしています - 私は抽出テキスト
LocationName
CCC-CC36-A
5N-N577-A
5N-N577-A
5N-N577-A
2T-225-A
PE-020-A
select
LEFT(LocationName, LEN(LocationName) - CHARINDEX('-',LocationName)-1),
EncounterNumber
from #TubeRateQty
SELECT
LEFT(LocationName, ISNULL(NULLIF(CHARINDEX('-',LocationName),0), LEN(LocationName)+1)-1)
,EncounterNumber
from #TubeRateQty
メッセージ537、レベル16、状態2、行124 無効な長さパラメータがLEFTまたはSUBSTRING関数に渡されました。 – user3666224
@ user3666224文字列が '-'でなければエラーになりました。その状況を処理するためのチェックがいくつか追加されました。 –
DECLARE @xml xml
SELECT @xml =(
SELECT CAST('<i><a>' + REPLACE(LocationName,'-','</a><a>') + '</a></i>' as xml)
FROM YourTable
FOR XML PATH('')
)
SELECT t.v.value('a[1]','nvarchar(100)'),
t.v.value('a[2]','nvarchar(100)'),
t.v.value('a[3]','nvarchar(100)')
FROM @xml.nodes('/i') as t(v)
出力以下のコードを試みた:
CCC CC36 A
5N N577 A
5N N577 A
5N N577 A
2T 225 A
PE 020 A
を
かなり単純な問題のための非常に複雑な解決策:( –
@ M.Ali OPは残っているだけです...まあ、はい、複雑です。 – gofr1
LEFT(LocationName、CHARINDEX( ' - '、LocationName)-1)、 EncounterNumber from #TubeRateQty – OldBoyCoder
メッセージ537、レベル16、状態2、行124 無効な長さパラメーターがLEFTまたはSUBSTRING関数に渡されました。 – user3666224
おそらくLEFT(LocationName、CHARINDEX( ' - '、LocationName))、EncTubeNumberから#TubeRateQtを選択する必要があります。しかし、私はsqlfiddleに現時点で何かをテストするように働くことはできません。すべての行に ' - 'が入っていますか? – OldBoyCoder