現在、以下のような表の列値があります。SQL Server 2008括弧内および外の単一列値のスワップ
StudentName
ABC [DEF]
GHI [JKL]
MNO [PQR]
そして、次のようにStudentName列の値を変更します。
StudentName
DEF [ABC]
JKL [GHI]
PQR [MNO]
大括弧の内側と外側の値を入れ替えるSQL関数がありますか?
現在、以下のような表の列値があります。SQL Server 2008括弧内および外の単一列値のスワップ
StudentName
ABC [DEF]
GHI [JKL]
MNO [PQR]
そして、次のようにStudentName列の値を変更します。
StudentName
DEF [ABC]
JKL [GHI]
PQR [MNO]
大括弧の内側と外側の値を入れ替えるSQL関数がありますか?
いいえ、文字列の一部を切り替える特別な機能はありません。
SELECT * INTO tbl_Students
FROM (VALUES
('ABC [DEF]'),
('GHI [JKL]'),
('MNO [PQR]')) as x(StudentName);
GO
SELECT * FROM tbl_Students;
GO
UPDATE tbl_Students
SET StudentName =
REPLACE(RIGHT(StudentName, LEN(StudentName) - CHARINDEX ('[',StudentName)),']',' [')
+ REPLACE(LEFT(StudentName,CHARINDEX ('[',StudentName)-1),' ',']');
GO
SELECT * FROM tbl_Students;
GO
おそらく、更新文を実行するには、col1 = col2、col2 = col1と設定する必要があります。 – ZLK
私は2つの列の値をスワップする必要がある場合にのみ動作しますが、私の要求は1つの列の値の範囲内に入れ替えることです – Mark
私はそれがすべての列であることに気付きませんでした。その場合は、他に考慮すべき点があります。おそらくABCは姓であり、DEFは指定された名前です。それは常に「テキストテキスト」ですか?ミドルネームはどうなりますか? – ZLK