如何取一条查询语句的前两列数据?

daniel_duan 2010-08-01 04:07:21
根据一条查询语句,只取其前两列数据,可以用SQL实现吗?
...全文
111 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
东那个升 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 hokor 的回复:]
SQL code
CREATE PROC P_PartClumsQuery(@TableName SYSNAME,@ColumnCount INT = 200,@Condition VARCHAR(500) = NULL)
AS
BEGIN
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL = ISNULL(@SQL+N',',N'SELECT ')+ QUO……
[/Quote]

UP
hokor 2010-08-01
  • 打赏
  • 举报
回复
CREATE PROC P_PartClumsQuery(@TableName SYSNAME,@ColumnCount INT = 200,@Condition VARCHAR(500) = NULL)
AS
BEGIN
DECLARE @SQL NVARCHAR(MAX)
SELECT @SQL = ISNULL(@SQL+N',',N'SELECT ')+ QUOTENAME(name) FROM sys.columns
WHERE OBJECT_ID = OBJECT_ID(@TableName) AND column_id <=@ColumnCount
SELECT @SQL = @SQL+ N'FROM '+@TableName+ISNULL(N' WHERE '+@Condition,'')
PRINT @SQL
EXEC (@SQL)
END

IF OBJECT_ID('DBO.TB1') IS NOT NULL
DROP TABLE DBO.TB1
SELECT 1 A,2 B,3 C,4 D INTO TB1
UNION SELECT 11,12,13,14

IF OBJECT_ID('DBO.TB2') IS NOT NULL
DROP TABLE DBO.TB2
SELECT 100 A,200 B,300 C,400 D INTO TB2
UNION SELECT 101,201,301,401

EXEC P_PartClumsQuery N'DBO.TB1',2 --查询TB1 前2列
/*
A B
1 2
11 12
*/

EXEC P_PartClumsQuery N'DBO.TB2',3 --查询TB2 前3列
/*
1 2 3
2 3 4
*/

EXEC P_PartClumsQuery N'DBO.TB1',2,N'A = 1' --指定条件查询
/*
A B
1 2
*
xxmiaoyong126com 2010-08-01
  • 打赏
  • 举报
回复
用程序去实现啊,
daniel_duan 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feixianxxx 的回复:]
SQL code
select 1,2 from 表
[/Quote]
就算知道表名用这个也不行啊
永生天地 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 feixianxxx 的回复:]
SQL code
select 1,2 from 表
[/Quote]

看上去没什么好办法,用syscolumns表查吧
feixianxxx 2010-08-01
  • 打赏
  • 举报
回复
表名字知道么》。。
feixianxxx 2010-08-01
  • 打赏
  • 举报
回复
select 1,2 from 表
daniel_duan 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xys_777 的回复:]
引用 3 楼 daniel_duan 的回复:
引用 2 楼 guguda2008 的回复:
SELECT COL1,COL2 FROM TB

查询语句是动态的,事先我并不知道都有什么列啊


具体动态语句的例子是什么样?
[/Quote]
也就是说语句可能是任何语句,比如Select * from A, Select * from B这两条语句

表A和表B的结构完全不样,所以用列名去查应该是不行的, 但是我只想要其中的前两列的数据
永生天地 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 daniel_duan 的回复:]
引用 2 楼 guguda2008 的回复:
SELECT COL1,COL2 FROM TB

查询语句是动态的,事先我并不知道都有什么列啊
[/Quote]

具体动态语句的例子是什么样?
daniel_duan 2010-08-01
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 guguda2008 的回复:]
SELECT COL1,COL2 FROM TB
[/Quote]
查询语句是动态的,事先我并不知道都有什么列啊
guguda2008 2010-08-01
  • 打赏
  • 举报
回复
SELECT COL1,COL2 FROM TB
wdy0719 2010-08-01
  • 打赏
  • 举报
回复
select top(2) from ...

34,588

社区成员

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

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