[SQL] 열 이름 등을 선택 SQL
SQL열 이름 등을 선택 SQL
내가 열 이름의 A1, A2있는 테이블을 가지고 ..., b1.b2 ....
어떻게 %와 같은 열 이름을 가진 모든 사람을 선택할 수 있습니다?
해결법
-
==============================
1.당신은하지 표준 SQL로 할 수 있습니다. 열 이름은 SQL 데이터처럼 취급되지 않습니다.
당신은하지 표준 SQL로 할 수 있습니다. 열 이름은 SQL 데이터처럼 취급되지 않습니다.
당신이 가지고있는 SQL 엔진을 사용하는 경우, 말 등 열 이름, 종류, 저장 메타 데이터 테이블 대신 해당 테이블에 선택할 수 있습니다.
-
==============================
2.이렇게하면 목록을 얻을 것이다
이렇게하면 목록을 얻을 것이다
select * from information_schema.columns where table_name='table1' and column_name like 'a%'
쿼리를 만들 때 그것을 사용하려면, 당신이 뭔가를 할 수 있습니다 :
declare @sql nvarchar(max) set @sql = 'select ' select @sql = @sql + '[' + column_name +'],' from information_schema.columns where table_name='table1' and column_name like 'a%' set @sql = left(@sql,len(@sql)-1) -- remove trailing comma set @sql = @sql + ' from table1' exec sp_executesql @sql
위는 SQL 서버를 대상으로합니다.
-
==============================
3.당신은보기 INFORMATION_SCHEMA.COLUMNS를 사용해야합니다
당신은보기 INFORMATION_SCHEMA.COLUMNS를 사용해야합니다
select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = my_table_name AND COLUMN_NAME like 'a%'
행 인라인 당신은 PIVOT 및 실행 EXEC () 함수를 사용할 수 있습니다.
-
==============================
4.이렇게하면 테이블 이름과 열 이름을 표시합니다
이렇게하면 테이블 이름과 열 이름을 표시합니다
select table_name,column_name from information_schema.columns where column_name like '%breakfast%'
-
==============================
5.여기 당신이 원하는 정보를 표시 할 수있는 좋은 방법입니다 :
여기 당신이 원하는 정보를 표시 할 수있는 좋은 방법입니다 :
SELECT B.table_catalog as 'Database_Name', B.table_name as 'Table_Name', stuff((select ', ' + A.column_name from INFORMATION_SCHEMA.COLUMNS A where A.Table_name = B.Table_Name FOR XML PATH(''),TYPE).value('(./text())[1]','NVARCHAR(MAX)') , 1, 2, '') as 'Columns' FROM INFORMATION_SCHEMA.COLUMNS B WHERE B.TABLE_NAME like '%%' AND B.COLUMN_NAME like '%%' GROUP BY B.Table_Catalog, B.Table_Name Order by 1 asc
중 하나를 사이에 아무것도 추가 '%%'의 주요 선택의 테이블 및 / 또는 열 이름은 당신이 원하는 좁힐.
-
==============================
6.
SELECT * FROM SysColumns WHERE Name like 'a%'
당신에게 열 목록을 얻을 것이다, 당신은 당신의 목표 테이블을 제한하기 위해 더 많은 필터링 할 것
거기에서 당신은 어떤 구성 할 수 있습니다 광고를-특별 SQL
-
==============================
7.Blorgbeard는 SQL 서버에 대한 좋은 대답을했다. 당신이 내 같은 MySQL 서버가있는 경우 그 다음은 이름이 몇 가지 주요 문구처럼 어디 열에서 정보를 선택할 수 있습니다. 당신은 테이블 이름, 데이터베이스 이름 및 키워드를 대체해야합니다.
Blorgbeard는 SQL 서버에 대한 좋은 대답을했다. 당신이 내 같은 MySQL 서버가있는 경우 그 다음은 이름이 몇 가지 주요 문구처럼 어디 열에서 정보를 선택할 수 있습니다. 당신은 테이블 이름, 데이터베이스 이름 및 키워드를 대체해야합니다.
SET @columnnames = (SELECT concat("`",GROUP_CONCAT(`COLUMN_NAME` SEPARATOR "`, `"),"`") FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='your_database' AND `TABLE_NAME`='your_table' AND COLUMN_NAME LIKE "%keyword%"); SET @burrito = CONCAT("SELECT ",@columnnames," FROM your_table"); PREPARE result FROM @burrito; EXECUTE result;
-
==============================
8.천재 아이디어를 @Blorgbeard 감사드립니다.
천재 아이디어를 @Blorgbeard 감사드립니다.
내가 그것을 편집 할 수 있도록 그런데 Blorgbeard의 쿼리는 나를 위해 작동하지 않는 :
DECLARE @Table_Name as VARCHAR(50) SET @Table_Name = 'MyTable' -- put here you table name DECLARE @Column_Like as VARCHAR(20) SET @Column_Like = '%something%' -- put here you element DECLARE @sql NVARCHAR(MAX) SET @sql = 'select ' SELECT @sql = @sql + '[' + sys.columns.name + '],' FROM sys.columns JOIN sys.tables ON sys.columns.object_id = tables.object_id WHERE sys.columns.name like @Column_Like and sys.tables.name = @Table_Name SET @sql = left(@sql,len(@sql)-1) -- remove trailing comma SET @sql = @sql + ' from ' + @Table_Name EXEC sp_executesql @sql
from https://stackoverflow.com/questions/5274594/sql-select-with-column-name-like by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 스키마와 데이터 모두를위한 스크립트를 생성 (0) | 2020.06.04 |
---|---|
[SQL] 필드는 MySQL의에서 분 값이 어디에서 어떻게 데이터를 선택하려면? (0) | 2020.06.04 |
[SQL] 같은 테이블에서 날짜 범위를 중복 감지 (0) | 2020.06.04 |
[SQL] PostgreSQL을에 INSERT 또는 UPDATE에 의해 영향을받는 레코드 수를 가져옵니다 (0) | 2020.06.04 |
[SQL] 이유는 HAVING 절에 집계 별칭을 사용할 수 없습니다? (0) | 2020.06.04 |