求sql

onebigboy 2003-10-20 02:21:34
CP表
AcceptAttach字段(varchar)
application/x-pmd|*/*
application/x-smaf
image/gif
image/jpeg|*/*
image/png|*/*

说明:
AcceptAttach字段记录的值有可能包含'|',如果包含'|',取出'|'前的内容,否则取出整个字段。例如:application/x-pmd|*/* 则 取出application/x-pmd。然后取出满足条件application/x-pmd在@Header中存在的记录。

declare @Header varchar(200)
set @header='fdsfsd,application/x-pmd,fdsfs'

sql:
select * from CP
where
CHARINDEX
(SUBSTRING(AcceptAttach,0,CHARINDEX('|',AcceptAttach)),@Header)<>0

我想当CHARINDEX('|',AcceptAttach)=0时 返回 Len(AcceptAttach),怎么用case
...全文
23 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
onebigboy 2003-10-20
  • 打赏
  • 举报
回复
ok,thank you very much
txlicenhe 2003-10-20
  • 打赏
  • 举报
回复
select * from CP
where
CHARINDEX
(SUBSTRING(AcceptAttach,0,(case when CHARINDEX('|',AcceptAttach)=0 then len(AcceptAttach) else CHARINDEX('|',AcceptAttach) end)),@Header)<>0
onebigboy 2003-10-20
  • 打赏
  • 举报
回复
select * from CP
where
CHARINDEX
(SUBSTRING(AcceptAttach,0,(case when CHARINDEX('|',AcceptAttach)=0 then len(AcceptAttach) else CHARINDEX('|',AcceptAttach)=0 end)),@Header)<>0


出错:第4行‘=’号附近有语法错误
愉快的登山者 2003-10-20
  • 打赏
  • 举报
回复
select * from CP
where
CHARINDEX
(SUBSTRING(AcceptAttach,0,(case when CHARINDEX('|',AcceptAttach)=0 then len(AcceptAttach) else CHARINDEX('|',AcceptAttach) end)),@Header)<>0
txlicenhe 2003-10-20
  • 打赏
  • 举报
回复
declare @Header varchar(200)
set @header='fdsfsd,application/x-pmd,fdsfs'

sql:
select * from CP
where
CHARINDEX
(SUBSTRING(AcceptAttach,0,(case when CHARINDEX('|',AcceptAttach)=0 then len(AcceptAttach) else CHARINDEX('|',AcceptAttach)=0 end)),@Header)<>0
txlicenhe 2003-10-20
  • 打赏
  • 举报
回复
CHARINDEX('|',AcceptAttach)=0

-->

(case when CHARINDEX('|',AcceptAttach)=0 then len(AcceptAttach) else CHARINDEX('|',AcceptAttach)=0 end)

34,575

社区成员

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

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