[SQL] 동적 SQL 쿼리에서 열을 선택
SQL동적 SQL 쿼리에서 열을 선택
내가 코드와 나는 다음과 같은 변수 이름을 사용하여 선택하려고 데이터베이스 필드 이름 호출이 있습니다
Declare @var1 = [Code]
(SELECT @var1
FROM [VoucherType]
WHERE [DeletedBy] IS NULL
AND [AutoID] = 1)
분명히, SQL은 var1에 필드 이름 [코드] 대신의 선택없이 또는 if 문 가능성이 문자열로 인식되고 @ 내가 그런 방법으로 그것을 할 수있는 방법을 문자열이 아니라 내 데이터베이스 분야 등이 var1 @ 해석합니다.
해결법
-
==============================
1.이 시도:
이 시도:
DECLARE @var1 VARCHAR(20) DECLARE @sql VARCHAR(255) SET @var1 = 'Code' SET @sql = 'select ' + @var1 + ' from [VoucherType] where [DeletedBy] is null and [AutoID] = 1' EXEC sp_executesql @sql
당신은 동적 쿼리를 구성해야하고, sp_executesql을을 사용하여 실행할 수 있습니다
사물의 '동적'측면에 더 추가하려면 저장 프로 시저를 사용합니다. 예를 들어 여기를 참조하십시오 :
http://www.marten-online.com/database/execute-dynamic-sql-in-mssql.html
당신은 마이크로 소프트 SQL 서버를 사용하는 경우 그입니다 ...
-
==============================
2.당신은 동적 SQL을 사용해야합니다.
당신은 동적 SQL을 사용해야합니다.
declare @ColName varchar(128) declare @sql varchar(4000) Set @ColName='Code'; select @sql = 'SELECT '+@ColName+' FROM [VoucherType] WHERE [DeletedBy] IS NULL AND [AutoID] = 1' exec sp_executesql @sql go
이 게시물이 도움이 될 수 있습니다
변수에 이름에서 테이블을 액세스
SQL : 변수에 따라 선택 동적 열 이름
문안 인사
-
==============================
3.당신은 SELECT 문에서 같은 변수를 사용할 수 없습니다.
당신은 SELECT 문에서 같은 변수를 사용할 수 없습니다.
당신은 동적 SQL을 만들어야합니다.
당신은 당신의 RDBMS를 지정하지 않지만, SQL 서버에서 당신은 sp_executesql을 (바람직) 또는 EXEC을 사용
Declare @var1 varchar(100) Declare @sql varchar(1000) SET @var1 = '[Code]' SET @sql = ' select ' + @var1 + ' from [VoucherType]' + ' where [DeletedBy] is null and [AutoID] = 1' EXEC sp_executesql @sql
읽으십시오 : 저주 및 동적 SQL의 축복을
-
==============================
4.코드 아래에 시도하십시오 :
코드 아래에 시도하십시오 :
VAR1 VARCHAR DECLARE @ (50)
SET @var1 = '[Code]' EXEC ('SELECT ' + @var1 + ' FROM [VoucherType] WHERE [DeletedBy] IS NULL AND [AutoID] = 1 ')
from https://stackoverflow.com/questions/8454671/dynamically-choose-column-in-sql-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL 서버, 분 초 변환, 시간, 일 (0) | 2020.07.14 |
---|---|
[SQL] SQL에서 매개 변수 - 델파이 7 (0) | 2020.07.14 |
[SQL] GETDATE 지난 달 (0) | 2020.07.14 |
[SQL] 1 개 이상의 값을 가진 열을 PIVOT 행이 반환 (0) | 2020.07.14 |
[SQL] 열이 다른 컬럼의 모든 값이 포함되어 있는지 확인 - MySQL의를 (0) | 2020.07.14 |