SQL server腳本語句積累


1:往現有的表中增加一個字段

IF NOT EXISTS ( SELECT 1

  FROM sys.sysobjects so WITH ( NOLOCK )
  INNER JOIN sys.syscolumns sc WITH ( NOLOCK ) ON so.id = sc.id
  WHERE so.name = 'EgPurchase_OrderPlan'
  AND sc.name = 'IsNewSystem' )
  BEGIN
    ALTER TABLE dbo.EgPurchase_OrderPlan ADD IsNewSystem INT NOT NULL DEFAULT 0
    EXECUTE sp_addextendedproperty N'MS_Description', '是否推送新系統', N'user',
    N'dbo', N'table', N'EgPurchase_OrderPlan', N'column', N'IsNewSystem'
  END
GO

2:更新一個字段

UPDATE dbo.EgSys_ExportSet
SET ColumnNames='訂單編號|1,店鋪名稱|1,倉庫名稱|1,平台|1,商品|1,商品名稱|1,商品編號|1,規格編碼|1,顏色名稱|1,規格名稱|1,商品數量|1,吊牌價|1,單價|1,成本價|1,成交價|1,應付金額|1,實付金額|1,優惠|1,運費|1,重量|1,交易單號|1,實付物流費用|1,快遞單號|1,物流公司|1,買家昵稱|1,收件人|1,國家|1,省|1,市|1,區|1,地址|1,完整地址|1,郵編|1,買家留言|1,賣家留言|1,買家手機|1,買家電話|1,買家郵箱|1,訂單狀態|1,訂單付款時間|1,訂單完結時間|1,發貨日期|1,換貨狀態|1,換貨數量|1,付款狀態|1,刪除狀態|1,副單狀態|1,退款狀態|1,退款金額|1,主訂單號|1,城市代碼|0,訂單備注|0,分銷商名|0,業務員|0,國家中文|0,國家簡寫|0,申報費用|0,商品類別|0,商品類別(英)|0,商品備注|0,客戶條形碼|1,Sku狀態|0,商品條形碼|1'
WHERE ModuleMark='AllOrder'

3:查詢EDL轉運單號

SELECT d.*
FROM dbo.EgSys_Delivery d WITH ( NOLOCK )
INNER JOIN dbo.Egsys_PlatformTrade t WITH ( NOLOCK ) ON t.tid = d.tid
WHERE d.deliveryTime < CONVERT(DATE, GETDATE())
AND d.deliveryTime >= CONVERT(DATE, DATEADD(DAY, -70000, GETDATE()))
AND t.orderState >= 4
AND t.order_deleteState != 1
AND d.logisticsCompany LIKE 'EdlExpress%'
AND d.logisticsNo LIKE 'HMZX%'

4:插入一條記錄的嚴謹寫法

/*
* =============================================================================
* Designer:
* Description: nsy_1901161114
* Created: 2019/01/16 11:12:47
* =============================================================================
*/

SELECT [disPlatformID] ,
[disPlatformName] ,
[disPlatformValue] ,
[disPlatformNote] ,
[disPlatformOrder] ,
[DefaultSpaceId] ,
[IsDisable] ,
[NotifyUrl]
INTO #EgSys_DistributionPlatform
FROM [dbo].[EgSys_DistributionPlatform]
-- where 1=0 只讀取表結構,節約內存
WHERE 1 = 0
UNION ALL SELECT '42','Oberlo','Oberlo','Oberlo','42','0','0',''
INSERT INTO [dbo].[EgSys_DistributionPlatform]
( [disPlatformID] ,
[disPlatformName] ,
[disPlatformValue] ,
[disPlatformNote] ,
[disPlatformOrder] ,
[DefaultSpaceId] ,
[IsDisable] ,
[NotifyUrl]
)
SELECT d.disPlatformID, -- [int] NOT NULL,
d.disPlatformName , -- varchar(50) NULL
d.disPlatformValue , -- varchar(50) NULL
d.disPlatformNote , -- varchar(255) null
d.disPlatformOrder , -- [int] NULL
d.DefaultSpaceId , -- [int] NULL
d.IsDisable , -- [int] NULL,
d.NotifyUrl -- [varchar] (200) NULL
FROM #EgSys_DistributionPlatform d WITH ( NOLOCK )
LEFT JOIN dbo.EgSys_DistributionPlatform dp WITH ( NOLOCK ) ON dp.disPlatformID = d.disPlatformID
WHERE dp.disPlatformID IS NULL
DROP TABLE #EgSys_DistributionPlatform

5:統計用戶流失趨勢圖

SELECT SUM(tt.NewUserNum) AS NewUserNum,tt.NotLogonDays
FROM
(
SELECT sum(t.NewUserNum) AS NewUserNum,CASE WHEN DATEDIFF(DAY,t.LastLogonDate,GetDate()) <7 THEN DATEDIFF(DAY,t.LastLogonDate,GetDate())
ELSE 7
END AS 'NotLogonDays'
FROM
(
SELECT COUNT(*) AS NewUserNum,CONVERT(varchar(10),LastLogonDate,120) AS LastLogonDate
FROM [View_UserInfo]
WHERE IsAndroid=0
AND convert(varchar(10),RegisterDate,120) BETWEEN '2010-3-20 ' AND '2019-3-28'
AND DATEDIFF(DAY,LastLogonDate,GetDate()) IN (3,4,5,6) OR DATEDIFF(DAY,LastLogonDate,GetDate()) >=7
GROUP BY convert(varchar(10),LastLogonDate,120)
) AS t
GROUP BY CONVERT(varchar(10),t.LastLogonDate,120)
) AS tt
GROUP BY tt.NotLogonDays
ORDER BY tt.NotLogonDays

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM