简体   繁体   English

SQL Server在不知道列名的情况下从表中选择数据

[英]SQL Server Select data from table without knowing column names

This is sample data table. 这是样本数据表。

在此处输入图片说明

I want to select values in any rows or any column (equals) = 200 with column names.But we don't know column names . 我想选择任何具有行名的行或任何列(等于)= 200的值。但是我们不知道列名

如果您知道表名,则可以使用SQLServer 2005或更高版本查询INFORMATION_SCHEMA.TABLESINFORMATION_SCHEMA.COLUMNS ,或者使用SQLServer 2000来查询sysobjectssyscolumns来检索表列,之后,您可以根据需要创建完全引用的查询

I think the below T-SQL will get you what you want. 我认为下面的T-SQL将为您提供所需的东西。 It was written against AdventureWorks2012LT. 它是针对AdventureWorks2012LT编写的。 In the future, you can get more specific help by including the SQL create statements with your question (so the responder doesn't have to recreate the tables) (BTW, My example is looking for any field that contains the letter 'S') 将来,您可以通过在问题中包含SQL create语句来获得更具体的帮助(这样,响应者就​​不必重新创建表了)(顺便说一句,我的示例正在查找包含字母“ S”的任何字段)

DECLARE @column_name nvarchar(200);
DECLARE @statement nvarchar(max);

DECLARE @results TABLE(
id int,
colname nvarchar(200),
value nvarchar(max)
)

DECLARE col_cursor CURSOR FOR
SELECT C.COLUMN_NAME AS col
FROM INFORMATION_SCHEMA.COLUMNS C WHERE C.TABLE_NAME LIKE 'Address'

OPEN col_cursor
FETCH NEXT FROM col_cursor INTO @column_name

WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @column_name
SELECT @statement = N'SELECT AddressID, ''' + @column_name + ''' AS ColName, ' + @column_name + ' AS value FROM SalesLT.[Address] WHERE ' + @column_name + ' LIKE ''%S%''';

INSERT INTO @results
EXEC(@statement);

FETCH NEXT FROM col_cursor INTO @column_name
END

CLOSE col_cursor
DEALLOCATE col_cursor

SELECT * FROM @results

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在不知道列名的情况下选择表的统计操作 - Select statistical operations on table without knowing column names 可以在不知道结果列名的情况下进行 SQL Server Pivot 吗? - Can SQL Server Pivot without knowing the resulting column names? SQL:在不知道所有列名的情况下,从连接中的一个表中选择所有值? - SQL: Select all values from one table in a join while not knowing all column names? 如何从SQL Server中传递的参数中选择表和列名? - How to select Table and Column Names from passed parameters in SQL Server? SQL Server - 在不知道列的情况下更新表只是值 - SQL Server - Update table without knowing the column just the value 从没有列名的查询中选择数据 - Select data from query without column names 从具有列名和描述的表中选择数据SQL Server - Select data from table with column name and description SQL Server SQL从表中获取列名作为数据? - SQL Get the column names from a table as data? 从Select中构建JSON,但在SQL Server 2016中没有列名 - Build JSON out of Select but without column names in SQL Server 2016 使用 SQL Server 中的 CTAS 将数据从具有不同列名的源映射到现有 SQL 表 - Map data with CTAS in SQL Server from source with different column names to existing SQL table
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM