求SQL语句

weasea 2008-09-22 10:07:33
ID name value Rev
1 Prodname sony 1.0
2 MadeIn China 1.0
3 Prodname sony 1.0
4 MadeIn China 1.0
5 Prodname sharp 1.0
6 MadeIn Vietnam 1.0

求 Prdoname 都是sony 的 产地
2 MadeIn china 1.0
4 MadeIn China 1.0
...全文
116 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgxyz 2008-09-22
  • 打赏
  • 举报
回复
SELECT * FROM TB A WHERE EXISTS(SELECT 1 FROM TB WHERE lotNumber=A.lotNumber AND  value='SONY')
wgzaaa 2008-09-22
  • 打赏
  • 举报
回复
select * from 表名 where lotnumber in(select lotnumber from 表名 where name='Prdoname' and value='sony')
yw0903 2008-09-22
  • 打赏
  • 举报
回复
偷懒的做法。两个表硬生生的被楼主整合到一起了。
weasea 2008-09-22
  • 打赏
  • 举报
回复
ID name lotNumber value Rev
1 Prodname 08001 sony 1.0
2 MadeIn 08001 China 1.0
3 Prodname 08002 sony 1.0
4 MadeIn 08002 Vietnam 1.0
5 Prodname 08003 sharp 1.0
6 MadeIn 08003 Vietnam 1.0

对不起
我少了个字段 lotnumber 批号
我以这个控制的
也就是求prodname=sony的 产品产地(以批号控制 )
也就是 2 4 条记录

zanyi1986 2008-09-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 weasea 的帖子:]
ID name value Rev
1 Prodname sony 1.0
2 MadeIn China 1.0
3 Prodname sony 1.0
4 MadeIn China 1.0
5 Prodname sharp 1.0
6 MadeIn Vietnam 1.0

求 Prdoname 都是sony 的 产地
2 MadeIn china 1.0
4 MadeIn China 1.0
[/Quote]

select * from table where name='MadeIn' and (value='china' or value='China')


weasea 2008-09-22
  • 打赏
  • 举报
回复
这样的设计是 保证新加产品特性后,不至于加表的字段
比如sony除了产地,还有型号,颜色等
如果这样设计
prodname madein model color
sony china sony-1 back

如果再多个尺寸
我就得修改数据库了

而像这种结构
GUID name value Rev

我只要加个size的name就好了
weasea 2008-09-22
  • 打赏
  • 举报
回复
对阿
现在看到好多数据库 看上去是块状数据
感觉特别扭
我也没办法

我选的是2 和 4
而且2 和 4 是GUID
为了看上去简洁,我才写的 2 和4
  • 打赏
  • 举报
回复
楼主你这样设计表有什么用意呢?我第一次见这样设计的
rockyvan 2008-09-22
  • 打赏
  • 举报
回复
樓主必須保證表裏面的數據是按照ID增序排列,而且奇數行和偶數行的數據不能亂,否則前面寫的代碼不可用!
lgxyz 2008-09-22
  • 打赏
  • 举报
回复
现在才知道原来是两行为一组数据的。。。
rockyvan 2008-09-22
  • 打赏
  • 举报
回复
這個表的設計很奇怪!

SELECT ID,name,value,Rev
FROM TB
WHERE ID IN (SELECT ID=ID+1 FROM TB WHERE value='sony')
dawugui 2008-09-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 weasea 的帖子:]
ID name value Rev
1 Prodname sony 1.0
2 MadeIn China 1.0
3 Prodname sony 1.0
4 MadeIn China 1.0
5 Prodname sharp 1.0
6 MadeIn Vietnam 1.0

求 Prdoname 都是sony 的 产地
2 MadeIn china 1.0
4 MadeIn China 1.0
[/Quote]
哦,估计猜到了,必须ID连续且两组在一起.

select * from tb where id+1 in (select id from from tb where name = 'Prodname' and value = 'sony')
lgxyz 2008-09-22
  • 打赏
  • 举报
回复
id 应该是
1
3

SELECT * FROM TB WHERE value='SORRY'
wgzaaa 2008-09-22
  • 打赏
  • 举报
回复
select * from 表名 where id in(select id+1 from 表名 where name='Prdoname' and value='sony')
wgzaaa 2008-09-22
  • 打赏
  • 举报
回复
没错,没见过这么设计的,两行为一组
dawugui 2008-09-22
  • 打赏
  • 举报
回复
求 Prdoname 都是sony 的 产地
2 MadeIn china 1.0
4 MadeIn China 1.0

你这个结果怎么来的?感觉结果错了吧.

34,590

社区成员

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

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