查询问题,马上解贴!不够再加

niaoren 2003-12-03 10:09:09
CREATE PROCEDURE [dbo].[获取设备参数值]
@tableName nvarchar(100),
@id nvarchar(500)
AS
declare @s varchar(1000)
set @s = ''
select @s=@s+rtrim(name) + ',' from syscolumns where id = object_id(@tableName) and name not in
('备用代码','备注','批准是否通过')
order by colid
set @s=left(@s,len(@s)-1)
exec('select ' + @s + ' from ' + @tableName + ' where equipID in (' + @id + ')')
我现在要加一个联接,就是要通过设备equipID 号联接另一个表(equip 它的主键是equipID)的5个字段,
...全文
107 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
niaoren 2003-12-03
  • 打赏
  • 举报
回复
已经解决了
niaoren 2003-12-03
  • 打赏
  • 举报
回复
好像还有点小问题,@S 里的字段怎么解决,b.@S好像不行啊
niaoren 2003-12-03
  • 打赏
  • 举报
回复
谢谢你!我还想请教一下,像这样的查询会影响速度吗?因为“另一个表”会特别的大
pengdali 2003-12-03
  • 打赏
  • 举报
回复
o

CREATE PROCEDURE [dbo].[获取设备参数值]
@tableName nvarchar(100),
@id nvarchar(500)
AS
declare @s varchar(1000)
set @s = ''
select @s=@s+'a.'+rtrim(name) + ',' from syscolumns where id = object_id(@tableName) and name not in
('备用代码','备注','批准是否通过')
order by colid
set @s=left(@s,len(@s)-1)
exec('select ' + @s + ',b.[5个字段] from ' + @tableName + ' a,另一个表 b where equipID in (' + @id + ') and a.equip=b.equip')
niaoren 2003-12-03
  • 打赏
  • 举报
回复
我是问怎么做那个联接
niaoren 2003-12-03
  • 打赏
  • 举报
回复
我不懂你的意思!
pengdali 2003-12-03
  • 打赏
  • 举报
回复
exec('select ''asfas''')

pengdali 2003-12-03
  • 打赏
  • 举报
回复
select 'asfas' 显示字符

改成 exec 你怎么写?
niaoren 2003-12-03
  • 打赏
  • 举报
回复
还是不懂,请指点
pengdali 2003-12-03
  • 打赏
  • 举报
回复
''转义为'如:

select '''','''''',char(39)
pengdali 2003-12-03
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[获取设备参数值]
@tableName nvarchar(100),
@id nvarchar(500)
AS
declare @s varchar(1000)
set @s = ''
select @s=@s+''''+rtrim(name) + ''',' from syscolumns where id = object_id(@tableName) and name not in
('备用代码','备注','批准是否通过')
order by colid

set @s=left(@s,len(@s)-1)

exec('select ' + @s + ' from ' + @tableName + ' where equipID in (' + @id + ')')

22,210

社区成员

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

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