字段内容置换!请邹兄考量!

Josion 2006-11-20 07:07:42
表Table
字段:Bat
字段Bat内容如下格式:
ID Bat
1 Tom,Jack
2 Luck,Mary
要求实现:
ID Bat
1 Jack,Tom
2 Mary,Luck
即把Bat内容相互调换位置!.
要求用SQL实现....
另:如程序实现,请给出具体思路!
多谢1!
...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
冷箫轻笛 2006-11-20
  • 打赏
  • 举报
回复
邹老大的语句效率应该是最好的~~~

向邹老大学习!!!
Josion 2006-11-20
  • 打赏
  • 举报
回复
多谢!马上结贴!
zjcxc 元老 2006-11-20
  • 打赏
  • 举报
回复
一样
Josion 2006-11-20
  • 打赏
  • 举报
回复
多谢各位!
如果此表有10000条不同记录,解决方案还是如此??
冷箫轻笛 2006-11-20
  • 打赏
  • 举报
回复
create table bat
(
id int,
bat varchar(30)
)

insert into bat select 1, 'Tom,Jack'
insert into bat select 2, 'Luck,Mary'

--语句
select id,right(bat,len(bat) - charindex(',',bat)) + ','+left(bat,charindex(',',bat) - 1)
from bat

--结果
id
----------- -------------------------------------------------------------
1 Jack,Tom
2 Mary,Luck

(所影响的行数为 2 行)
hhhdyj 2006-11-20
  • 打赏
  • 举报
回复
DECLARE @tb TABLE([ID] int, [Bat] varchar(10))
INSERT INTO @tb
SELECT 1, 'Tom,Jack'
UNION ALL SELECT 2, 'Luck,Mary'

UPDATE @tb
SET Bat = RIGHT(Bat,LEN(Bat) - CHARINDEX(',', Bat)) + ',' + LEFT(Bat, CHARINDEX(',', Bat) -1)

SELECT * FROM @tb

--结果
ID Bat
----------- ----------
1 Jack,Tom
2 Mary,Luck
zjcxc 元老 2006-11-20
  • 打赏
  • 举报
回复
SELECT
ID,
Bat = PARSENAME(REPLACE(Bat, ',', '.'), 1)
+ ','
+ PARSENAME(REPLACE(Bat, ',', '.'), 2)
FROM(
SELECT ID = 1, Bat = 'Tom,Jack' UNION ALL
SELECT ID = 2, Bat = 'Luck,Mary'
)A

-- 结果:
ID Bat
----------- -------------
1 Jack,Tom
2 Mary,Luck

(2 行受影响)

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧