반응형

sql-server 36

행을 반환하지 않는 쿼리의 기본 행을 설정하는 방법은 무엇입니까?

행을 반환하지 않는 쿼리의 기본 행을 설정하는 방법은 무엇입니까? 테이블에 행이 없는 경우 기본 행을 반환하는 방법을 알아야 합니다.이것을 하는 가장 좋은 방법은 무엇입니까?저는 가치를 얻기 위해 이 특정 테이블에서 한 열만 반환할 뿐입니다. 편집: SQL Server 입니다.Oracle을 위한 한 가지 접근 방식: SELECT val FROM myTable UNION ALL SELECT 'DEFAULT' FROM dual WHERE NOT EXISTS (SELECT * FROM myTable) 또는 Oracle의 경우: SELECT NVL(MIN(val), 'DEFAULT') FROM myTable 또는 SqlServer에서: SELECT ISNULL(MIN(val), 'DEFAULT') FROM my..

programing 2023.11.04

SQL 쿼리에서 기본값을 반환하는 방법

SQL 쿼리에서 기본값을 반환하는 방법 쿼리가 어떤 행도 반환하지 않는다면 단일 스칼라 또는 기본값을 반환할 수 있는 쉬운 방법이 있습니까? 지금은 다음과 같은 코드 예제가 있습니다. IF (EXISTS (SELECT * FROM Users WHERE Id = @UserId)) SELECT Name FROM Users WHERE Id = @UserId ELSE --default value SELECT 'John Doe' IF-ELSE를 사용하지 않고 어떻게 하면 더 나은 방법으로 할 수 있을까요?이름이 무효가 아니라고 가정하며Id고유하므로 최대 한 행까지 일치시킬 수 있습니다. SELECT ISNULL(MAX(Name),'John Doe') FROM Users WHERE Id = @UserId 해라ISN..

programing 2023.11.04

TSQL에서 테이블 이름 앞에 있는 "#"의 의미는 무엇입니까?

TSQL에서 테이블 이름 앞에 있는 "#"의 의미는 무엇입니까? TSQL에서 테이블 이름 "#mytable"과 "mytable"의 차이점은 무엇입니까?많은 사용자 정의 절차에서 테이블 이름이 "#"로 시작하는 것을 봅니다.로컬 임시 테이블은 해당 테이블을 생성한 프로세스에 대한 비공개 테이블입니다.#내 테이블은 임시 테이블이고 내 테이블은 콘크리트 테이블입니다. SQL Server에서 Temporary Tables에 대해 자세히 볼 수 있습니다. 배치 또는 프로시저 내에서 데이터를 처리할 때 중간 결과에 대한 작업 공간을 제공하는 데 가장 많이 사용됩니다.테이블 값 함수에서 테이블을 전달하거나, 저장된 프로시저 간에 테이블 기반 데이터를 전달하거나, 최근에는 테이블 값 매개 변수의 형태로 전체 읽기 전용..

programing 2023.10.10

모든 외부 키 및 제약 조건을 무시하는 SQL 행 삭제

모든 외부 키 및 제약 조건을 무시하는 SQL 행 삭제 테이블에 줄이 있어요.이 행에는 수백만 행이 있는 몇 개의 다른 테이블에서 참조되는 ID 열이 있습니다.행을 삭제하는 SQL 문은 항상 시간 초과됩니다.제 디자인으로 볼 때 삭제하고자 하는 행은 다른 곳에서도 참조되지 않는다는 것을 알고 있습니다.따라서 저는 SQL이 이 행에 대한 외부 키 참조를 위해 다른 모든 테이블을 확인해야 하는 것을 무시하고 행을 즉시 삭제하기를 원합니다.SQL 2008에서 이를 신속하게 수행할 수 있는 방법이 있습니까?아마도 다음과 같은 것들이 있을 것입니다. DELETE FROM myTable where myTable.ID = 6850 IGNORE CONSTRAINTS 아니면 그 선을 따라 무언가.해당 테이블/열에서 제약..

programing 2023.09.25

하나의 SELECT 문에 두 개의 스칼라 변수를 설정하시겠습니까?

하나의 SELECT 문에 두 개의 스칼라 변수를 설정하시겠습니까? 나는 이것을 하고 싶습니다. Declare @a int; Declare @b int; SET @a,@b = (SELECT StartNum,EndNum FROM Users Where UserId = '1223') PRINT @a PRINT @b 그러나 잘못된 구문입니다.하나의 선택문에 여러 스칼라 변수를 설정하려면 어떻게 해야 합니까?할 수 있습니다. Declare @a int; Declare @b int; SET @a = (SELECT StartNum FROM Users Where UserId = '1223') SET @b = (SELECT EndNum FROM Users Where UserId = '1223') PRINT @a PRINT..

programing 2023.09.15

SQL에서 DateTime 필드의 시간 부분

SQL에서 DateTime 필드의 시간 부분 SQL에서 DateTime 필드의 시간 부분을 추출하려면 어떻게 해야 합니까?프로젝트의 경우 날짜에 상관없이 DateTime 필드의 타임스탬프가 5pm인 데이터를 반환해야 합니다.이렇게 하면 시간만 반환됩니다. SQL Server의 경우: SELECT convert(varchar(8), getdate(), 108) 설명: getDate()현재 날짜와 시간을 알려주는 것입니다. 108는 이 경우에 필요한 부분, 즉 시간을 포맷/제공하고 있습니다. varchar(8)그 부분의 글자 수를 알려줍니다. 좋아요: 글을쓰셨다면varchar(7)거기서, 그것은 당신에게 줄 것입니다.00:00:0 글을쓰셨다면varchar(6)거기서, 그것은 당신에게 줄 것입니다.00:00:..

programing 2023.09.15

C#의 SQL Server 데이터베이스에서 데이터를 검색하는 방법은 무엇입니까?

C#의 SQL Server 데이터베이스에서 데이터를 검색하는 방법은 무엇입니까? 3개의 열이 있는 데이터베이스 테이블이 있습니다.firstname,Lastname그리고.ageC# Windows 응용 프로그램에는 3개의 텍스트 상자가 있습니다.textbox1다음 코드를 사용하여 SQL Server에 연결했습니다. SqlConnection con = new SqlConnection("Data Source = .; Initial Catalog = domain; Integrated Security = True"); con.Open(); SqlCommand cmd = new SqlCommand("Select * from tablename", con); 데이터베이스에서 값을 가져오려고 합니다. 값을 지정할 경우te..

programing 2023.08.21

구분 기호 기반 T-SQL 분할 문자열

구분 기호 기반 T-SQL 분할 문자열 존재할 수도 있고 없을 수도 있는 구분 기호를 기준으로 분할할 데이터가 있습니다. 예제 데이터: John/Smith Jane/Doe Steve Bob/Johnson 다음 코드를 사용하여 데이터를 이름과 성으로 분할합니다. SELECT SUBSTRING(myColumn, 1, CHARINDEX('/', myColumn)-1) AS FirstName, SUBSTRING(myColumn, CHARINDEX('/', myColumn) + 1, 1000) AS LastName FROM MyTable 원하는 결과: FirstName---LastName John--------Smith Jane--------Doe Steve-------NULL Bob---------Johnson..

programing 2023.08.06

보기를 사용한 쿼리에서 잠금 테이블 힌트와 함께 사용 - 보기 내에서 전파됩니까?

보기를 사용한 쿼리에서 잠금 테이블 힌트와 함께 사용 - 보기 내에서 전파됩니까? SQL Server의 View에 "WITH NOLOCK" 쿼리 힌트가 사용되는 경우, View 정의의 원시 테이블에 NOLOCK이 사용되지 않더라도 해당 힌트를 View 정의 자체에 전파합니까?이를 필요로 하는 이유는 지원 담당자가 시간이 많이 소요되는 대규모 쿼리를 수행하기를 원하지만 애플리케이션 자체 내의 보기를 사용하는 모든 쿼리에 이 잠금을 적용하지는 않기 때문입니다.예, NOLOCK은 보기 정의에서 사용하는 테이블로 전파됩니다(최소한 SQL Server 2005에서는). MSDN의 표 힌트 참조: SQL Server 2005에서는 모든 잠금 힌트가 뷰에서 참조되는 모든 테이블 및 뷰로 전파됩니다.또한 SQL 서버는..

programing 2023.07.17

다른/변경된 경우 업데이트

다른/변경된 경우 업데이트 업데이트가 다른 경우에만 SQL에서 업데이트 문을 수행할 수 있습니까? 예를들면 데이터베이스에 있는 경우col1 = "hello" update table1 set col1 = 'hello' 어떠한 종류의 업데이트도 수행해서는 안 됩니다. 단, 만약 update table1 set col1 = "bye" 업데이트를 수행해야 합니다.쿼리 컴파일 및 실행 중에 SQL Server는 UPDATE 문이 실제로 값을 변경하는지 여부를 파악하는 데 시간을 들이지 않습니다.필요 없는 경우에도 예상대로 쓰기를 수행합니다. 다음과 같은 시나리오는 update table1 set col1 = 'hello' SQL이 아무것도 하지 않을 것이라고 생각할 수도 있지만, 실제로 값을 변경한 것처럼 필요한..

programing 2023.07.17
반응형