in查询的结果?

十一文 2009-06-22 11:25:45
前提不能用存储过程

现在又如下结构

id value1
1 4
2 6
3 7
4 8
7 4,7,8


我现在要查询value1 in id为7的value1的记录(逗号分隔)
...全文
65 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
ggtggt 2009-06-22
  • 打赏
  • 举报
回复
study
--小F-- 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 40 楼 xming4321 的回复:]
引用 35 楼 fredrickhu 的回复:
引用 25 楼 xming4321 的回复:
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水


你怎么知道我在研究红楼梦?


不过建议你发到扩充话题 呵呵 那里研究文学的多些哈哈
[/Quote]
只想在这里谈谈 去扩充话题没意思
十一文 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 fredrickhu 的回复:]
引用 25 楼 xming4321 的回复:
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水



你怎么知道我在研究红楼梦?
[/Quote]
不过建议你发到扩充话题 呵呵 那里研究文学的多些哈哈
--小F-- 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 38 楼 xming4321 的回复:]
引用 35 楼 fredrickhu 的回复:
引用 25 楼 xming4321 的回复:
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水


你怎么知道我在研究红楼梦?



林妹妹啊

呵呵呵 进你空间看到了 你的帖子 呵呵
[/Quote]
..
十一文 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 fredrickhu 的回复:]
引用 25 楼 xming4321 的回复:
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水



你怎么知道我在研究红楼梦?
[/Quote]

林妹妹啊

呵呵呵 进你空间看到了 你的帖子 呵呵
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 35 楼 fredrickhu 的回复:]
引用 25 楼 xming4321 的回复:
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水



你怎么知道我在研究红楼梦?
[/Quote]

你这研究 CSDN常来的 都知道。。哈哈 我每次都捧场的噶~
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 xming4321 的回复:]
感谢 !!
[/Quote]
--小F-- 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 xming4321 的回复:]
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水
[/Quote]

你怎么知道我在研究红楼梦?
十一文 2009-06-22
  • 打赏
  • 举报
回复
感谢 !!
十一文 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 26 楼 feixianxxx 的回复:]
CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0
这句话 分解为 它先判断 ',4,'在','+(select value1 from kkkk where id=@id)+','的位置 即在'4,7,8'中的位置 返回一个1 >0 所以条件为真,所以输出了 ID=1,VALUE1=4
再判断 ',6,'在','+(select value1 from kkkk where id=@id)+','的位置 即在'4,7,8'中的位置 返回 0不>0 所以为假,不输出了ID=2,VALUE1=6
依次推下去~
[/Quote]

[Quote=引用 30 楼 feixianxxx 的回复:]

引用 27 楼 xming4321 的回复:
鹅鹅鹅 今天不结贴 明天 加分结贴



我解释的 你能明白不?
[/Quote]
明白了 呵呵
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 xming4321 的回复:]
引用 28 楼 feixianxxx 的回复:
引用 24 楼 fredrickhu 的回复:
引用 23 楼 feixianxxx 的回复:
SQL codedeclare @id int
set @id=7--传入你要分解的ID
select ID,value1
from kkkk
where CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0--判断value1的值是否在'4,7,8'中,这里注意
--select value1 from kkkk where id=@id 这个执行出来时 4,7,8 则','+(select value1…
[/Quote]
关键是 问题搞清楚了么?呵呵 这个最重要~
十一文 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 feixianxxx 的回复:]
引用 24 楼 fredrickhu 的回复:
引用 23 楼 feixianxxx 的回复:
SQL codedeclare @id int
set @id=7--传入你要分解的ID
select ID,value1
from kkkk
where CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0--判断value1的值是否在'4,7,8'中,这里注意
--select value1 from kkkk where id=@id 这个执行出来时 4,7,8 则','+(select value1 from kkkk where id=@id)+','为 …
[/Quote]
偶水区来的呵呵 所以快点吗 呵呵
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 xming4321 的回复:]
鹅鹅鹅 今天不结贴 明天 加分结贴
[/Quote]

我解释的 你能明白不?
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 xming4321 的回复:]
鹅鹅鹅 今天不结贴 明天 加分结贴
[/Quote]
O(∩_∩)O
十一文 2009-06-22
  • 打赏
  • 举报
回复
鹅鹅鹅 今天不结贴 明天 加分结贴
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 fredrickhu 的回复:]
引用 23 楼 feixianxxx 的回复:
SQL codedeclare @id int
set @id=7--传入你要分解的ID
select ID,value1
from kkkk
where CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0--判断value1的值是否在'4,7,8'中,这里注意
--select value1 from kkkk where id=@id 这个执行出来时 4,7,8 则','+(select value1 from kkkk where id=@id)+','为 ‘4,7,8’
and id <>@id…
[/Quote]
都是CSDN逛出来的。。以后多像你们高手学习~~
你们回帖都好快 我跟不上哈哈
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0
这句话 分解为 它先判断 ',4,'在','+(select value1 from kkkk where id=@id)+','的位置 即在'4,7,8'中的位置 返回一个1 >0 所以条件为真,所以输出了 ID=1,VALUE1=4
再判断 ',6,'在','+(select value1 from kkkk where id=@id)+','的位置 即在'4,7,8'中的位置 返回 0不>0 所以为假,不输出了ID=2,VALUE1=6
依次推下去~
十一文 2009-06-22
  • 打赏
  • 举报
回复
l两大高手讲解 得研究研究 呵呵22楼还是研究红楼的 呵呵 以后得 常来 ms sqlserver 哈哈 少灌水
--小F-- 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 feixianxxx 的回复:]
SQL codedeclare @id int
set @id=7--传入你要分解的ID
select ID,value1
from kkkk
where CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0--判断value1的值是否在'4,7,8'中,这里注意
--select value1 from kkkk where id=@id 这个执行出来时 4,7,8 则','+(select value1 from kkkk where id=@id)+','为 ‘4,7,8’
and id<>@id--去掉本身的可能
order by value1 --升…
[/Quote]
哇塞 麦迪 小伙子进步 不少
feixianxxx 2009-06-22
  • 打赏
  • 举报
回复
declare @id int
set @id=7--传入你要分解的ID
select ID,value1
from kkkk
where CHARINDEX(','+LTRIM(value1)+',',','+(select value1 from kkkk where id=@id)+',')>0--判断value1的值是否在'4,7,8'中,这里注意
--select value1 from kkkk where id=@id 这个执行出来时 4,7,8 则','+(select value1 from kkkk where id=@id)+','为 ‘4,7,8’
and id<>@id--去掉本身的可能
order by value1 --升序
加载更多回复(23)

22,207

社区成员

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

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