0

MS-SQLデータベースに保存されているこのテキストがあります(引用符を無視してください。これがどのように機能するかを具体的に再設計することはできません):

"TEST|00000298398293|EQ5|患者"

ここで、単純な選択を行うと、その結果が返されます。私がやりたいのは、「|」に基づいてその文字列を分割することです この文字列に関連付けられた個々の文字列を返すため、異なるフィールドに「TEST」、「0000298398293」、「EQ5」、「Patient」を含めることができます。これどうやってするの?PHPではexplodeメソッドが使えますが、MS-SQLにそのようなものはありますか?

4

1 に答える 1

1

それは確かに最もエレガントなソリューションではありませんが、私は過去に使用しました:

DECLARE @Sql varchar(50) = 'TEST|00000298398293|EQ5|Patient'


SELECT
    PARSENAME(REPLACE(@sql,'|','.'),4),
    PARSENAME(REPLACE(@sql,'|','.'),3),
    PARSENAME(REPLACE(@sql,'|','.'),2),
    PARSENAME(REPLACE(@sql,'|','.'),1)

注意 : これは、パイプが 3 つある場合にのみ機能します。最終的には、将来的にデータベースを再設計することを検討してください!

于 2013-04-30T19:18:29.237 に答える