[求一个SQL语句怎么写?]如何选择某表的某几列(列序号知道,但列名称不知道)
譬如:
t1(col1,col2,col3,col4) 这张表
我要查询第一列和第二列,也就是col1,col2
但是我现在不能知道的是表的列名称是col1和col2,如何进行选择呢??
Select _________ From t1
请问这里的列怎么写??
[解决办法]
--如果列名未知,只能使用動態SQL語句
--建立測試環境
Create Table t1(col1 Int, col2 Int, col3 Int, col4 Int)
Insert t1 Select 1, 2, 3, 4
GO
--測試
Declare @S Varchar(100)
Select @S = ' '
Select @S = @S + ', ' + Name From SysColumns Where ID = OBJECT_ID( 't1 ') And ColID < = 2 Order By ColID
Select @S = 'Select ' + Stuff(@S, 1, 1, ' ') + ' From t1 '
EXEC(@S)
--刪除測試環境
Drop Table t1
--結果
/*
col1col2
12
*/
[解决办法]
我假设你不是在存储过程中写这样的句子:
如果在程序中这样:
Dim db As New ADODB.Connection
Dim rec As New ADODB.Recordset
db.Open "driver={SQL Server};server= " & GetServerName & ";uid=sa;pwd=;database=grain_Buy "
rec.Open "select * from t1 ", db, adOpenDynamic, adLockOptimistic
Do While Not rec.EOF
debug.print rec.fields(0) & "--- " & rec.fields(1)
rec.MoveNext
Loop
rec.Close
db.Close
Set rec = Nothing
Set db = Nothing
[解决办法]
楼上的比较实用