sql如何按照列号查找?

csdn网速很慢 2011-03-22 04:15:49
有N个表
table a
列1 列2
1 2
2 3
2 4
232 2
1 1d

select 第二列 from a
以上第二列如何表示,不知道列名只知道是第二列。
...全文
355 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn网速很慢 2011-03-22
  • 打赏
  • 举报
回复
这样啊,我看我还是把列名改下来的方便。谢谢大家的回答。
Shawn 2011-03-22
  • 打赏
  • 举报
回复
DECLARE @tablename VARCHAR(100)
SET @tablename = 'tb'

DECLARE @sql VARCHAR(max)
SELECT
@sql = 'select ' + QUOTENAME(b.[name]) + ' from ' + QUOTENAME(@tablename)
FROM sys.tables a, sys.columns b
WHERE a.object_id = b.object_id
AND a.[name] = @tablename
AND a.[type] = 'U'
AND b.column_id = 2
--PRINT @sql
EXEC(@sql)
王向飞 2011-03-22
  • 打赏
  • 举报
回复
都按你这思路的话,那数据库安全性咋保证?

我知道表名就可以把你所有列破解。
csdn网速很慢 2011-03-22
  • 打赏
  • 举报
回复
比如 sql有没有雷系 select <2> from table
查出第二列这样的查找sql还更容易实现他就没提供吗?
csdn网速很慢 2011-03-22
  • 打赏
  • 举报
回复
谢谢,2楼的可行。但是就没有直接用个索引查找的吗》?
快溜 2011-03-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiao_ai_mei 的回复:]
SQL code
select * from tb

地区 国家 书名 价格
---- ----- ---- -----------
一山 KOR java 20
一山 KOR java 10
一山 KOR vb 10
上海 CHINA java 10
上海 CHINA java 30
上海 CHINA vb 10
……
[/Quote].
Xiao_Ai_Mei 2011-03-22
  • 打赏
  • 举报
回复
select * from tb 

地区 国家 书名 价格
---- ----- ---- -----------
一山 KOR java 20
一山 KOR java 10
一山 KOR vb 10
上海 CHINA java 10
上海 CHINA java 30
上海 CHINA vb 10
因拉 印度 java 20
迪拉 印度 vb 10
沙拉 沙特 java 10

(9 row(s) affected)



declare @col varchar(10)

select @col=name from sys.columns
where OBJECT_NAME(object_id)='tb'
and column_id=2

exec('select '+@col+' from tb')




国家
-----
KOR
KOR
KOR
CHINA
CHINA
CHINA
印度
印度
沙特

(9 row(s) affected)
zheninchangjiang 2011-03-22
  • 打赏
  • 举报
回复
既然不知道列名,那每一列都有可能成为第二列

34,589

社区成员

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

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