1. 程式人生 > >sql 根據欄位拆分 查詢in 語句

sql 根據欄位拆分 查詢in 語句

USE [YunNanHw]
GO
/****** Object:  StoredProcedure [dbo].[AbnormalityLocationNew]    Script Date: 06/27/2018 16:20:30 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[AbnormalityLocationNew] 

AS
BEGIN
declare @UsertId nvarchar(50);--	
declare @str nvarchar(Max);
declare @LastDate datetime;--
declare @UPLOAD int;--當前使用者設定的多長時間上傳座標
 
 
if object_id('tempdb..#aa') is not null Begin
    drop table #aa
  
End
  
  CREATE TABLE #aa(
  UserId [nvarchar](50) NOT NULL,
   day27 [nvarchar](100) NOT NULL,
    t1 [nvarchar](50) NOT NULL,
     t2 [nvarchar](50) NOT NULL,
)
set @str='insert #aa select UserId, day'+CONVERT(VARCHAR(19),DATEPART(DD,GetDate()))+',PARSENAME(REPLACE(day'+CONVERT(VARCHAR(19),DATEPART(DD,GetDate()))+','+''';'','+'''.'''+'),2) AS t1,PARSENAME(REPLACE(day'+CONVERT(VARCHAR(19),DATEPART(DD,GetDate()))+','+''';'','+'''.'''+'),1) AS t2 from HW_Rostering 
where   YEAR = DATEPART(YYYY,GetDate()) and month = DATEPART(MM,GetDate()) and exists (select Id from HW_Scheduling where CONVERT(varchar(100), BeginTime, 14) <CONVERT(varchar(100), GETDATE(), 14) and
 CONVERT(varchar(100), GETDATE(), 14) < CONVERT(varchar(100), EndTime, 14)
) AND (PARSENAME(REPLACE(day'+CONVERT(VARCHAR(19),DATEPART(DD,GetDate()))+','+''';'','+'''.'''+'),1) IN(select Id from HW_Scheduling where CONVERT(varchar(100), BeginTime, 14) <CONVERT(varchar(100), GETDATE(), 14)
 and CONVERT(varchar(100), GETDATE(), 14) < CONVERT(varchar(100), EndTime, 14)
) OR (PARSENAME(REPLACE(day'+CONVERT(VARCHAR(19),DATEPART(DD,GetDate()))+','+''';'','+'''.'''+'),0)IN(select Id from HW_Scheduling where CONVERT(varchar(100), BeginTime, 14) <CONVERT(varchar(100), GETDATE(), 14)
 and CONVERT(varchar(100), GETDATE(), 14) < CONVERT(varchar(100), EndTime, 14))))'

  print @str
  exec sp_executesql @str
  declare @cursor cursor;--遊標   
  set @cursor=cursor for  
  --select id,departname from dbo.Sys_Department where 
[email protected]
and parentid='0' --or ParentId in( select id from dbo.Sys_Department where [email protected] and parentid='0') select UserId from #aa open @cursor fetch next from @cursor into @UsertId; while @@FETCH_STATUS=0 begin fetch next from @cursor into @UsertId; select @LastDate=LastDate,@UPLOAD=UPLOAD from Sys_Admin where
[email protected]
; if((select count(*) from HW_ChatWork where BeginTime is not null and EndTime is null and Type=4 and [email protected])=0) Begin if(datediff(S,@LastDate,GetDate())>@UPLOAD) Begin insert into [dbo].[HW_ChatWork] --如果大於進行報警 ([Id] ,[AdminId] ,[PubDate] ,[IsChat] ,[Type] ,[BeginTime] ) VALUES(NEWID(),@UsertId,GETDATE(),0,4,GETDATE()) end end end close @cursor deallocate @cursor SELECT *FROM #aa END

相關推薦

sql 根據拆分 查詢in 語句

USE [YunNanHw] GO /****** Object: StoredProcedure [dbo].[AbnormalityLocationNew] Script Date: 06/27/2018 16:20:30 ******/ SET ANSI_NUL

Oracle 根據查詢其所在的表、(只有值資訊,連型別都不知道)

今天一哥們求助,oracle的我只知道ziduan欄位的值,連型別,大小設定全都不知道,如何查詢到該欄位所在的表,以及該欄位名。以下是我編寫的實際指令碼: 1.假設該欄位是varchar2或者char型別 DECLARE CURSOR cur_hh IS SELECT tabl

SpringBoot:SpringData JPA:進階查詢—JPQL/原生SQL查詢、分頁處理、部分對映查詢

上一篇介紹了入門基礎篇SpringDataJPA訪問資料庫。本篇介紹SpringDataJPA進一步的定製化查詢,使用JPQL或者SQL進行查詢、部分欄位對映、分頁等。本文儘量以簡單的建模與程式碼進行展示操作,文章比較長,包含查詢的方方面面。如果能耐心看完這篇文章,你應該能使用SpringDataJ

sql關聯今年1-12月月份值查詢

場景模擬: 資料庫賬務明細表中只存有公司1月和7月的賬務明細,比如前端人員有以下需求:給定公司ID返回公司今年1-12月賬務彙總,如當月沒有資料用0代替,並按月份大小排序。 選定一張行數量大於12的表: SELECT CASE WHEN

mysql SQL拆分

現有如下需求:需要將字串 1,2,3,4,5,6,7 拆分成 1 2 3 4 5 6 7 分析: 為了完成上述功能,在mysql中提供了一些字串操作的函式,其中SUBSTRING_INDEX(str, delim, count) str

模糊查詢sql like 優化與區別

                多欄位模糊查詢sql like %% 優化與區別SELECT *  FROM [KLims].[dbo].[Task] where  ClientCompany like '%a%' or [Address] like '%a%'SELECT *  FROM [KLims].[

T-SQL修改相同不同記錄的語句

--下面是更新Sys_SysData表中SubName欄位的Acode、AName UPDATE Sys_SysData SET SubValue = CASE SubName WHEN 'ACode

Oracle 根據某個查詢結果去重 三種方法詳述

Oracle三種去重的方法 distinct group by rowid 分組函式:作用於一組資料,並對一組資料返回一個值 常見的分組函式有: count 返回找到的記錄數 min 返回一個數字列或計算列的最小值 max 返回一個數字列或計算列的最

SQL模糊匹配關鍵字查詢

http://www.west.cn/info/html/wangluobiancheng/Mssql/20080505/72303.html 我們開發資料庫應用時,常常需要用到模糊查詢。如果同一個條件需要匹配很多欄位怎麼辦呢?通常,程式設計師會每個欄位都在SQL中“

Spark SQL解析查詢parquet格式Hive表獲取分割槽查詢條件

首先說一下,這裡解決的問題應用場景: sparksql處理Hive表資料時,判斷載入的是否是分割槽表,以及分割槽表的欄位有哪些?再進一步限制查詢分割槽表必須指定分割槽? 這裡涉及到兩種情況:select SQL查詢和載入Hive表路徑的方式。這裡僅就"載入Hive表路徑的方式"解析分割槽表字段,在處理時出現的

ORACLE——在所有表、查詢某個字串並輸出表名和

什麼都不想說,直接上乾貨 declare v_Sql varchar2(2000); v_count number; begin for xx in (select t.OWNER, t.TABLE_NAME, t.COLUMN_NAME from

mysql搜尋多表多模糊查詢

select parttime_job_business_assessments.*, u.nick_name, u.mobile, pj.name as job_name, b.name as business_name from `parttime_job_business_assess

JSON,陣列根據分組

function GroupbyName(data, Name) { var map = {}, dest = []; for (var i = 0; i < data.length; i++) { var ai = data[i]; if (!map[ai[Name]]) { dest.push({

添加了一個查詢速度突然變慢

幾年前寫的一個小總結,本來寫在公司的wiki上,現在讀起來感覺寫的挺好玩的,粘到這裡。   做一個需求,要給平臺數據表加個欄位。加欄位之後,觸發程式,通過DbVisualizer查詢,資料正確入庫,然後通過頁面訪問該表,提示連線超時!!!WTF!剛才通過頁面訪問的時候還好好的啊!!  

JSON,陣列根據多次分組

我們在前端開發過程中,遇到json物件,有時會需要多次分組。比如說,先按照是業務分組,然後再按照產品線分組,然後通過table或其他方式展示或操作 var obj1=[ { "demp":"001", "line":"a", "id":"1", }, { "demp":

SQL SERVER 統一補0方法

在SQL SERVER 2008R2的[AdventureWorks2008R2]示例資料庫中,看到以下欄位統一補0方法。 將CustomerID前面加0轉變為AccountNumber欄位。 CREATE TABLE [Sales].[Customer]( [CustomerID] [int] IDEN

使用Navicat 匯出 MySQL中表的資訊查詢,以及information_schema.COLUMNS解釋

1.將下面select複製到Navicat中即可查出表結構,然後複製即可 SELECT COLUMN_NAME 列名, COLUMN_COMMENT 欄位說明,   DATA_TYPE 資料型別,   CHARACTER_MAXIMUM_LENGTH 長度,   IS_N

python-進階教程-根據將記錄分組

0.摘要 根據資料中某一元素對資料進行分類是常會遇到的問題,本文通過介紹itertool.groupby()函式,根據字典中某一個值把資料進行分類。   1.itertool.groupby()函式 rows = [ {'address': '5412 N CLAR

DataGridView中根據取值顯示不同的行背景色

在dataGridView中根據不同的資料顯示不同的背景色便於區分資料,方便區分和檢視。基本方法就是遍歷所有行,根據欄位的區只要求,設定背景顏色。程式碼如下 //根據列表中資料不同,顯示不同顏色背景 foreach( DataGridViewRow

PHP----根據個數,迴圈列印字母排序,使用於PHPExcel

根據欄位個數,迴圈列印字母排序,使用於PHPExcel 最後拼裝成陣列 $tableheader = array('ID','學籍ID','退費單號','真實姓名','性別','手機號','QQ