求一条语句

zhxiongying 2013-04-25 12:17:48

SELECT * FROM AA WHERE A IN('33', '53', '65')

上面代码中的'33', '53', '65'不确定想使用下面的形式做,应该怎么样实现呀


DECLARE @te varchar(30)
DECLARE @Egc varchar(30)
IF @te='aabb'
BEGIN
SELECT @Egc="'33', '53', '65'"
END
ELSE IF @techclass='aacc'
BEGIN
SELECT @Egc="'32', 'DE'"
END

SELECT * FROM AA WHERE A IN(@Egc)
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2013-04-25
  • 打赏
  • 举报
回复
try this,

SELECT * INTO #tmp1 FROM AA where 1=2

IF @te='aa'
begin
INSERT INTO #tmp1 select * FROM AA WHERE A IN('33', '53', '65')
end
else if @te='cc'
INSERT INTO #tmp1 select * FROM AA WHERE A IN('3e', '5w')
end
zhxiongying 2013-04-25
  • 打赏
  • 举报
回复
下面代码提示“数据库中已存在名为 '#tmp1' 的对象。”,能不能让下面的可以运行

IF @te='aa'
begin
SELECT * INTO #tmp1 FROM AA WHERE A IN('33', '53', '65')
end
else if @te='cc'
SELECT * INTO #tmp1 FROM AA WHERE A IN('3e', '5w')
end
唐诗三百首 2013-04-25
  • 打赏
  • 举报
回复

DECLARE @te varchar(30)
DECLARE @Egc varchar(30)
IF @te='aabb'
    BEGIN
        SELECT @Egc="'33', '53', '65'"
    END
ELSE IF @techclass='aacc'
    BEGIN
        SELECT @Egc="'32', 'DE'"
    END


declare @tsql varchar(6000)

select @tsql='SELECT * FROM AA WHERE A IN('+replace(@Egc,'''','''''')+')'

exec(@tsql)
daiyueqiang2045 2013-04-25
  • 打赏
  • 举报
回复

DECLARE @te varchar(30)
DECLARE @Egc varchar(30)

set @te='aabb'
IF @te='aabb'    
BEGIN        
	SELECT @Egc='''33'''+','+ '''53'''+','+ '''65'''    
END
ELSE IF @te='aacc'    
BEGIN        
	SELECT @Egc='''32'''+','+'''DE'''    
END

declare @tsql varchar(6000) 
select @tsql='SELECT * FROM AA WHERE A IN('+@Egc+')' 
print @tsql
exec(@tsql)
--已测试通过

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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