怎么对字段名进行模糊查询
如何对字段名进行模糊查询
表结构为 时间 a_1 a_2 b_1 c_1 c_2 c_3 这种结构,如何在查询时只输入一个变量a或b或c,就把相关字段都查询出来?
------解决方案--------------------
表结构为 时间 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)) GO INSERT 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.columns WHERE object_id = OBJECT_ID('TT')
------解决方案--------------------
可能是我理解能力不好,没懂你的题目的意思!
- SQL code
CREATE TABLE TT(a_1 VARCHAR(1),a_2 VARCHAR(1),b_1 VARCHAR(1)) GO INSERT 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.columns WHERE object_id = OBJECT_ID('TT')