SQL Server의 테이블에서 가져온 값으로 대체합니다 문자열
1 선택 * 직원에서 ID BETWEEN ### 및 ### 및 고객 ID> ### 2 고객 *에서 ID BETWEEN ### 및 ### 을 선택하십시오. 여기서 Department를 선택하십시오. 여기서 Id = ###어떻게</p> <pre><code>Create Table StructureStrings(Id INT Primary Key,String nvarchar(4000)) </code></pre> <p><strong>샘플 데이터</strong>을 문자열에 특정 문자를 찾아 내가 텍스트 테이블 "StructureStrings"에 저장 한
와 나는 같은 문자열에서 "###"토큰 선물을 대체 할 명 "StructureValues"다른 테이블에서 가져온 가치관과
Create Table StructureValues (Id INT Primary Key,Value nvarcrhar(255))
Id Value
1 33
2 20
3 44
을 "###"단어를 대체 할
Select * from Employee where Id BETWEEN 33 and 20 and Customer Id> 44
Select * from Customer where Id BETWEEN 33 and 20
Select * from Department where Id=33
PS : 1. 여기서 가정이 값은 "###"의 선두로부터 즉, 동일한 순서로 토큰으로 대체됨을 "StructureValues.Value"의 처음 값으로 대체 될 것이다 열 등등. 여기
우리는 안전하게 **'nvarchar (40000)'이'nvarchar (4000)'라고 가정 할 수 있습니까? 'nvarchar (40000)'은 유효하지 않은 데이터 유형입니다. – Larnu
@Larnu 예, 사실 4000입니다. 감사합니다. 질문을 편집했습니다. –
최신 편집으로 이것은 불가능합니다. 적어도 성능은 끔찍할 것입니다. 특히 대체 문자열' '###' '을 사용하면 매개 변수가 불확실하고 ** 모든 ** 데이터 유형이 될 수 있습니다. 당신은 심각하게 당신의 설정을 재고해야합니다.이드들 사이에도 관계가없는 것 같습니다. 'Select * from Employee from'% ### % ''와 같은 이름이 'Select * from Employee'로 바뀌지 않는 한, '% 44 %'와 같은 이름 (어떤 직원이 ..에 숫자가있는 이름을 가지게됩니까? 그렇다면 Id 4의 문자열 값은 무엇입니까? – Larnu