一个SQL问题 在线等!!(200分)

  • 主题发起人 主题发起人 hetian_1982
  • 开始时间 开始时间
H

hetian_1982

Unregistered / Unconfirmed
GUEST, unregistred user!
declare @Region varchar(10)
declare @copNO varchar(15)

set @copNO='ALL'
set @Region='PRC'

select distinct Style as [1 Item Code],color as [2 color],Descr1 as [3 size],' ' as [4 Inseam]
from vewdwcop where cop= case when @copNO='ALL' then cop else @copNO end and
case when @Region='PRC' then
Region in ('GZ','SH','BJ','WS','FR')
else Region=@Region end
and qty1<>0 and len(rtrim(cop))>8

我想问一下 where 条件那里
case when @Region='PRC' then
Region in ('GZ','SH','BJ','WS','FR')
else Region=@Region end
怎么错了??? 我是想要一个动态的查询条件,如果当@Region='PRC'的时候,就用 Region in ('GZ','SH','BJ','WS','FR') 这个条件,其它的话就用其所长Region=@Region
 
有没有人会啊??帮帮忙!!!
 
select distinct Style as [1 Item Code],color as [2 color],Descr1 as [3 size],' ' as [4 Inseam]
from vewdwcop where cop= case when @copNO='ALL' then cop else @copNO end and
((@Region='PRC' and Region in ('GZ','SH','BJ','WS','FR') )
or (@Region<>'PRC' and Region =@Region))
and qty1<>0 and len(rtrim(cop))>8
---
try
 
你最好是把你的需求说出来, 以便于我们为你回答.你写的语句我们无法理解.
 
我要一个动态的查询条件!!
 
噢,写存储过程,或者写俩语句,在程序里动态分别调用吧。你的需求,不好直接达到。case不是这样用滴
 
shangshang,我现在就是要在一句SQL中实现啊!
如果我要用case,应该怎么写啊??
 
最好举个例子,要实现什么功能,才能说得清哦
你的语句看着太伤脑细胞
 
in 返回的是一个逻辑值吧,拿来做条件还可以。
 
为什么非要用case ,我上面的语句不行吗?
 
in 返回的是一个逻辑值 ???不懂!!
 
case when 那样写,好象没有道理。
 
试试这个。要打算让我帮你试的话,直接联系我,点我名字即可。

select distinct Style as [1 Item Code],color as [2 color],Descr1 as [3 size],' ' as [4 Inseam]
from vewdwcop
where (cop= case when @copNO='ALL' then cop else @copNO end)
and Region in (case when @Region='PRC' then
(select 'GZ','SH','BJ','WS','FR')
else
(select @Region)
end )
and qty1<>0
and len(rtrim(cop))>8
 
需求不清晰!
 
那应该怎么样写才行啊? 你上面的语句好像也行!如果用CASE WHEN 应该怎么写啊??帮帮忙!!
 
Delphi技术联盟群:23889386
 
把那个东东 用引号 括起来, 否则系统以为你那个是个表达式, case when @Region='PRC' then
"Region in ('GZ','SH','BJ','WS','FR') "
else "Region=@Region" end
 
接受答案了.
 
操,幼稚的人.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部