如何获取字符串中最后一个MAX的位置?

DiligencyMan 2009-02-13 11:09:32
SELECT M_ID,
MAX(CASE WHEN [R_USER_ID]=[1] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[1] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[97] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[681] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[682] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[683] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[684] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[685] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[697] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[698] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[699] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[700] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[701] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[702] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[703] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[704] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[705] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[706] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[707] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[708] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[709] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[710] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[711] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[712] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[715] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[716] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[717] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[719] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[720] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[721] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[722] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[723] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[724] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[725] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[726] THEN M_ID ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[727]

--如何获取最后一个MAX的位置啊?
本意是获取最后一个max的位置,然后截取掉这部分字符串'MAX(CASE WHEN [R_USER_ID]=[727]’
--使得sql语句编译可以通过!




...全文
102 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
oraclelogan 2009-02-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 libin_ftsafe 的回复:]
用REVERSE()函数反转一下字符串,然后把第一个XAM之前的数据删除掉,再REVERSE()回去。
[/Quote]

DECLARE @TT VARCHAR(300);
SET @TT='SELECT M_ID,MAX(CASE WHEN [R_USER_ID]=[1] THEN [M_ID] ELSE 0 END),MAX(CASE WHEN [R_USER_ID]=[1] THEN M_ID';
SET @TT=SUBSTRING(@TT,0,1000);
SET @TT=REVERSE(@TT);
SET @TT=REVERSE(SUBSTRING(@TT,CHARINDEX('(XAM', @TT),LEN(@TT)));
PRINT @TT;
dobear_0922 2009-02-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 happyflystone 的回复:]
先把串反过来,找xam再反串
[/Quote]
-狙击手- 2009-02-13
  • 打赏
  • 举报
回复
先把串反过来,找xam再反串
lgxyz 2009-02-13
  • 打赏
  • 举报
回复
这么长。。。。。
liangCK 2009-02-13
  • 打赏
  • 举报
回复
有才,这么长也不换行。
DiligencyMan 2009-02-13
  • 打赏
  • 举报
回复
顶下
子陌红尘 2009-02-13
  • 打赏
  • 举报
回复
用REVERSE()函数反转一下字符串,然后把第一个XAM之前的数据删除掉,再REVERSE()回去。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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