如何
select name,family from student where name="X"
没有列名。
例如:
select "column1","column2" from student where "column1"="x"
或者例如
select "1","2" from student where "1"="x"
“1”是column1 “2”是第2列
我不想说列名。我想说出它的号码或其他...... 从精选*累了累了。但它只是因为我不知道列名称,但我知道它们在哪里。我的列名称每次都要更改,但我的数据是相同的,并且数据在每个文件的相同列中。
答案 0 :(得分:3)
虽然您不能在SELECT语句中使用字段位置说明符,但SQL标准包括INFORMATION_SCHEMA,其中定义了表的字典。这包括COLUMNS视图,其中定义了所有表的所有字段。在此视图中,有一个名为ORDINAL_POSITION的字段,您可以使用该字段来帮助解决此问题。
如果您查询
SELECT ORDINAL_POSITION, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TABLE'
ORDER BY ORDINAL_POSITION
然后你可以获得你想要的序数位置的列名。从那里你可以准备一个SQL语句。
答案 1 :(得分:1)
您可以将临时表用作:
DECLARE @TB TABLE(Column1 NVARCHAR(50),...)
INSERT @TB
SELECT * FROM student
然后使用它:
SELECT Column1 FROM @TB WHERE Column1='aa'
答案 2 :(得分:0)
不,您不能在SELECT子句中使用序数(数字)位置。只有按你的顺序才能。
但是你可以创建自己的列别名......
Select Column1 as [1] From Table
答案 3 :(得分:0)
您可以使用别名:
SELECT name AS [1], family AS [2] FROM student WHERE name="X"
答案 4 :(得分:0)
这是不可能的。不幸的是,他们没有考虑table_schema不可用的表值函数,所以祝你好运。
答案 5 :(得分:0)
如果它是一个字符串,你可以这样做:
Select Column1 + '' From Table
如果它是一个数字,你可以这样做:
Select Column1 + 0 From Table
如果是日期时间,您可以这样做:
Select dateadd(d, 0, Column1) From Table
同样适用于其他数据类型..