[SQL] 동적 SQL을 사용하면 간단한 SQL 쿼리에 변수를 추가하여 열 이름을 지정합니다
SQL동적 SQL을 사용하면 간단한 SQL 쿼리에 변수를 추가하여 열 이름을 지정합니다
/ SQL 2008 SQL 2005
Declare @temp nvarchar(1000)
set @temp = 'ABC'
select col1,col2 from tableA
선택 쿼리와 함께, 어떻게 선택 쿼리에 변수를 추가하려면?
expected output :-
select col1,col2,@temp as [col3] from tableA
어디 @temp은 타블로의 열 이름을 지정합니다.
해결법
-
==============================
1.동적 열 이름을 지정하려는 경우, 당신은 동적 SQL을 실행 한 번 봐 걸릴 수 있습니다. 그러나 먼저이 방법의 위험성에 대해 읽고 확인해야합니다 :
동적 열 이름을 지정하려는 경우, 당신은 동적 SQL을 실행 한 번 봐 걸릴 수 있습니다. 그러나 먼저이 방법의 위험성에 대해 읽고 확인해야합니다 :
http://www.sommarskog.se/dynamic_sql.html
해당 페이지에서 동적으로 테이블 이름을 지정 쇼하는 샘플이 - 동적으로 열 이름을 대신 지정, 그래서 당신이 그것을 바꿀 수는 :
CREATE PROCEDURE general_select @tblname nvarchar(128), @key varchar(10), @debug bit = 0 AS DECLARE @sql nvarchar(4000) SET @sql = 'SELECT col1, col2, col3 FROM dbo.' + quotename(@tblname) + ' WHERE keycol = @key' IF @debug = 1 PRINT @sql EXEC sp_executesql @sql, N'@key varchar(10)', @key = @key
그래서 예를 들어 당신이 'X', 'Y', 그리고 'Z'라는 이름의 열이있는 테이블 '을 MyTable'이 있다면, 그것은처럼 보일 수 있습니다 :
DECLARE @columnName nvarchar(128) DECLARE @sql nvarchar(4000) set @columnName = 'z' SET @sql = 'SELECT x, y, ' + @columnName + ' from MyTable' EXEC sp_executesql @sql, N'@columnName varchar(128)', @columnName = @columnName
-
==============================
2.이 같은:
이 같은:
select col1,col2 from tableA WHERE col1 = @temp
아니면 이거:
select col1,col2,@temp as col3 from tableA WHERE col1 = @temp
아니면 이거:
select col1,col2,@temp as col3 from tableA
@temp가 열 이름 인 경우 또는, 어쩌면 당신은 동적 쿼리를 찾고?
SET @temp = 'select col1,col2, ' + @temp + ' as col3 from tableA' EXEC sp_executesql @temp
...
from https://stackoverflow.com/questions/7123659/using-dynamic-sql-to-specify-a-column-name-by-adding-a-variable-to-simple-sql-qu by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 두 개의 서로 다른 결과 집합을 받고 이러한 두 개의 쿼리의 차이는 무엇입니까? (0) | 2020.07.12 |
---|---|
[SQL] 어떻게 T-SQL을 사용하여 URL에서 XML을 읽을 수 있습니까? (0) | 2020.07.12 |
[SQL] 어떻게 SQL 작업이 성공적으로 실행 여부를 C #의 여부를 확인하는 (0) | 2020.07.12 |
[SQL] 사용 LEFT 조인 할 때 어떻게이 스크립트는 테이블을 갱신한다? (0) | 2020.07.12 |
[SQL] , 허용 널 (null)을 하나 개의 테이블에있는 모든 항목을 선택하고 다른 테이블과 조인 (0) | 2020.07.12 |