求一条SQL查询语句

PastMaster 2009-03-31 12:45:47
问题描述:
表tb_table1 (useridList 列 指 员工工号,类型为ntext)
id title content useridList
1 aa asf 011,012,013,
2 bb asdd 011,013,015,016,

我想搜出包含011员工的所有信息。
select * from tb_table1 where ','+useridList like '%,011,%'
这样写 提示说“数据类型 varchar 和 text 在 add 运算符中不兼容。”
谁能给个好的解决方法。谢谢
...全文
145 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sdhdy 2009-03-31
  • 打赏
  • 举报
回复
select * from tb_table1 where ','+cast(useridList as varchar(8000))+',' like '%,011,%' 
百年树人 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 josy 的回复:]
SQL codeselect * from tb_table1 where ','+(cast(useridList as varchar(8000)) like '%,011,%'

如果这个字段的值不是非常巨大,可以试试上面这个转换
[/Quote]
写多了一个'('
select * from tb_table1 where ','+cast(useridList as varchar(8000)) like '%,011,%'
百年树人 2009-03-31
  • 打赏
  • 举报
回复
select * from tb_table1 where ','+(cast(useridList as varchar(8000)) like '%,011,%' 


如果这个字段的值不是非常巨大,可以试试上面这个转换
liangCK 2009-03-31
  • 打赏
  • 举报
回复
CAST(useridList AS VARCHAR(8000))
rex100 2009-03-31
  • 打赏
  • 举报
回复
帮顶
alex_delki 2009-03-31
  • 打赏
  • 举报
回复
select * from tb_table1 where ','+cast(useridList as varchar(8000)) like '%011%'
ai_li7758521 2009-03-31
  • 打赏
  • 举报
回复
select * from tb_table1 where ','+cast(useridList as varchar(8000)) like '%,011,%' 
usher_gml 2009-03-31
  • 打赏
  • 举报
回复
select * from tb where ','+cast(useridList as varchar(8000)) like '%,011%'
builderwfy 2009-03-31
  • 打赏
  • 举报
回复
select * from tb_table1 where ','+cast(useridList as varchar(8000)) like '%,011,%'
v_oneforever 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 acupofnescafe 的回复:]
如果能确定useridlist字段的内容不会超过8000字符,那么可以先将useridlist转化为varchar类型后再检索。
select * from tb_table1 where ','+cast(useridList as varchar(8000))+',' like '%,011,%'
[/Quote]
that's right
幸运的意外 2009-03-31
  • 打赏
  • 举报
回复
如果能确定useridlist字段的内容不会超过8000字符,那么可以先将useridlist转化为varchar类型后再检索。
select * from tb_table1 where ','+cast(useridList as varchar(8000))+',' like '%,011,%'
htl258_Tony 2009-03-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 PastMaster 的帖子:]
问题描述:
表tb_table1 (useridList 列 指 员工工号,类型为ntext)
id title content useridList
1 aa asf 011,012,013,
2 bb asdd 011,013,015,016,

我想搜出包含011员工的所有信息。
select * from tb_table1 where ','+useridList like '%,011,%'
这样写 提示说“数据类型 varchar 和 text 在 add 运算符中不兼容。”
谁能给个好的解决方法。谢谢
[/Quote]
try
select * from tb_table1 where ','+cast(useridList as varchar(8000)) like '%,011,%' 
等不到来世 2009-03-31
  • 打赏
  • 举报
回复
alter table tb_table1 alter column useridlist varchar(8000)
  • 打赏
  • 举报
回复
select * from tb where charindex(','+cast(useridList as varchar(8000))+',',',011,')>0

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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