日期:2014-05-16  浏览次数:20381 次

sql sever的两个小问题。
一.表a,我如何选中某列之外的所有列。

  比如 表a

    a1 a2 a3 ......  axx
     1  2  3 xxxxxx  xx

我想选a3之外的所有列,如何写sql 语句?


二. 有表a

  id   姓名  状态
   1    王x   xx
   2    李x   yy
   3    刘x    ww

我想把 
   id   姓名  状态
   1    王x   xx
   3    刘x    ww
生成一个临时表保存在sql server中,等过一段时间,对他的"状态”进行修改,
再返回去修改表a中的相应记录,如何做?

   





 

  
------解决方案--------------------
问题1:
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM    syscolumns
WHERE   id = OBJECT_ID('表名')
        --AND name NOT IN ( '不希望显式的列' )
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名  ')


问题2:
select * into #t from a where id in (1,3)
update a 
set a.状态=t.状态
from #t t
where a.id=t.id
------解决方案--------------------
引用:
问题1:
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM    syscolumns
WHERE   id = OBJECT_ID('表名')
        --AND name NOT IN ( '不希望显式的列' )
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名  ')


问题2:
select * into #t from a where id in (1,3)
update a 
set a.状态=t.状态
from #t t
where a.id=t.id


我们强大的版主,你是怎么练习的这么厉害,有没有可推荐的书籍或者学习方法呢?我看了很多你的回复,很专业。读书的学习过SQL现在忘记了很多,工作中又转向这个行业了,学要回顾,有什么好方法吗?
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

问题1:
DECLARE @s NVARCHAR(4000)
SET @s = ''
SELECT  @s = @s + ',' + 'isnull('+QUOTENAME(name)+','''')'
FROM    syscolumns
WHERE   id = OBJECT_ID('表名')
        --AND name NOT IN ( '不希望显式的列' )
SET @s = STUFF(@s, 1, 1, '')
EXEC('select '+@s+' from 表名  ')


问题2:
select * into #t from a where id in (1,3)
update a 
set a.状态=t.状态
from #t t
where a.id=t.id


我们强大的版主,你是怎么练习的这么厉害,有没有可推荐的书籍或者学习方法呢?我看了很多你的回复,很专业。读书的学习过SQL