これを行う良い方法が見つからず、いくつかの制約のために変数を使用せずにコード化する必要がありますが、関数を呼び出すことができます。とにかく、Selectクエリから結果セットを返す必要があり、行の1つがパイプで区切られた文字列です。SQL解析の区切り文字列
だから、それはのようなものを返します:
id| Name | Message |
---------------------
1 | Some Name | 'Here is my | delimited | message'
を、私はそれが私があなたの代わりにそれを区切りに渡すことができますParsename('','|',1)
、のようなものを考えていた
id| Name | Message1 | Message2 | Message3
------------------------------------------------------
1 | Some Name | 'Here is my' | 'delimited' | 'message'
する必要があります常に期間ですが、私はそれを達成するための最善の方法を知らない。
編集:私はこのバリエーションを試しましたが、もちろん非常に混乱しています。 | 4つ以上の可能性があります|
SELECT Field1,
Field2 AS Originalvalue,
--1
SUBSTRING(Field2,0,CHARINDEX('|',Field2)) AS Msg1,
--2
LEFT(SUBSTRING(Field2,CHARINDEX('|',Field2)+1 ,LEN(Field2)),CHARINDEX('|',SUBSTRING(Field2,CHARINDEX('|',Field2)+1 ,LEN(Field2)))-1)
AS ExtractedValue
FROM Table1 T1 JOIN Table2 T2
ON T1.Id = T2.Id
WHERE T1.Id = 12
なぜ人々は、[これをやり続ける]ん(http://stackoverflow.com/search?q=sql+delimited)?! – Phil
パイプで区切られたフィールドでSQLの妖精が死ぬ – scrappedcola
ええと、このサイトの質問に回答できない人はいますか?それは 'googleを見てください'の多くのようです。私は今1時間以上探していて、私が探しているものを正確に見つけられませんでした。 – user204588