2017-08-15 13 views
0

私は「ファイルパス」というタイトルの列を持つテーブルがあると私は3つの別々の列にファイルパスを解析する必要が... 私はこの- 複数の行と1列

DECLARE @STR NVARCHAR(4000) 
SET @STR = 'NEED ANSWER FOR THIS SPACE' 

SELECT LEFT(@STR,(CHARINDEX('|',@STR)-1)) AS FILEPATH, 
    RIGHT(@STR,LEN(@STR) - ((CHARINDEX('|',@STR)-1))-1) AS NUMBER_OF_RECORDS, 
    @STR 
を使用しています

しかし、私はどのように変数を宣言するのかわかりません@STR全体の列として...任意の助けが巨大だろう。

+0

は、あなたの代わりに@STRを使用してのあなたのテーブルとフィールドに対するあなたの選択をすることができませんか?私は、FILEPATH、RIGHT(FilePath_Field、LEN(@STR) - ((CHARINDEX( '|'、@ STR)-1)のようにSELECT LEFT(FilePath_Field、(CHARINDEX( '|'、@ STR)-1) )-1)AS NUMBER_OF_RECORDS、Your_TableからのFilePath_Field –

答えて

0

はこのようにそれを試してみてください...

SELECT 
    FILEPATH = LEFT(@STR, (CHARINDEX('|', st.FilePath) - 1)), 
    NUMBER_OF_RECORDS = RIGHT(st.FilePath, LEN(st.FilePath) - ((CHARINDEX('|', st.FilePath) - 1)) - 1), 
    st.FilePath 
FROM 
    dbo.SomeTable st; 
関連する問題