读书人

怎么对字段名进行模糊查询

发布时间: 2012-05-24 11:55:41 作者: rapoo

如何对字段名进行模糊查询
表结构为 时间 a_1 a_2 b_1 c_1 c_2 c_3 这种结构,如何在查询时只输入一个变量a或b或c,就把相关字段都查询出来?


[解决办法]

SQL code
CREATE TABLE TT(a_1 VARCHAR(1),a_2 VARCHAR(1),b_1 VARCHAR(1))GOINSERT INTO tt(a_1,a_2,b_1)SELECT '1','1','b'UNION SELECT '2','2','b'SELECT DISTINCT        'select ' + STUFF(( SELECT  ',' + name                            FROM    sys.columns t                            WHERE   object_id = sys.columns.object_id AND name LIKE 'a%'  --字段名起始字符                          FOR                            XML PATH('')                          ), 1, 1, '') + ' from ' + OBJECT_NAME(object_id)FROM    sys.columnsWHERE   object_id = OBJECT_ID('TT')
[解决办法]
可能是我理解能力不好,没懂你的题目的意思!
SQL code
CREATE TABLE TT(a_1 VARCHAR(1),a_2 VARCHAR(1),b_1 VARCHAR(1))GOINSERT INTO tt(a_1,a_2,b_1)SELECT '1','1','b'UNION SELECT '2','2','b'SELECT DISTINCT        'select ' + STUFF(( SELECT  ',' + name                            FROM    sys.columns t                            WHERE   object_id = sys.columns.object_id AND name LIKE 'a%' FOR                            XML PATH('') --把TT表中的列名查询出来组成 ,a_1,a_2这种类型字符串                          ), 1, 1, '') --第一个开始替换一个字符串为空字符串                          + ' from ' + OBJECT_NAME(object_id)FROM    sys.columnsWHERE   object_id = OBJECT_ID('TT') 

读书人网 >SQL Server

热点推荐