通常使用されるSQL

 

最も普通に使用されるSQL文を要約します

 

1.特別な日

-今朝
SELECT DATEADD(DD、DATEDIFF(DD、0、GETDATE())、0)
-明日の朝
SELECT DATEADD(DD、DATEDIFF(DD、0、GETDATE())+ 1,0)
-週月曜日(週から日曜始まり)
SELECT DATEADD(週、DATEDIFF(週、0、GETDATE())、0)
-月の最初の日
SELECT DATEADD(ミリメートル、DATEDIFF(ミリメートル 、0、GETDATE())、 0)
-月の最終日は、
DATEADD(DD、-1、DATEADD(ミリメートル、DATEDIFF(ミリメートル、0、GETDATE())+ 1,0))SELECT
年の最初の日に-
SELECT DATEADD(YY、DATEDIFF( YY、0、GETDATE())、0)
-今年の最後の日
SELECT DATEADD(DD、-1、DATEADD (YY、DATEDIFF(YY、0、GETDATE())+ 1,0))


2.文字列処理

-削除スペース
SELECT LTRIM(COL1)、RTRIM( tableNameのFROM COL2)、LTRIM(RTRIM(COL3))

SELECT
3文字目から開始し、撮影した2つの文字を取得するために2つを取っ- SUBSTRING(col1,3,2)を
、STUFF(col2,3,2、「」) - 2スタート3文字目から除去します残りの文字を与えるために
、STUFF(col3,3,2、「XXX」 ) - 最初の3つの文字、2つの文字から3,4 XXXを置き換えるために
、REPLACE(COL4、「古い」、「新しい新しいです」 ) - COL4にすべての古い新しい新置き換える
FROM tableNameのを


-一緒にスプライスされた列COL1、
SELECT STUFF((SELECT '' tableNameのFROM + COL1 XMLパスのフィルタ条件( '')) 、1,1 '')


- シリアル番号は、例えば、0またはA000001、A000002 ......、文字のプレフィックスが固定またはすることができる可変の年、月、日などにスペースを追加します

DECLARE @flowNo AS VARCHAR(10)
DECLARE @nextNo AS INT
tableNameの过滤条件の中から選択@flowNo = MAX(flowNo)
IF(@flowNoがNULL)
SET @flowNo = 'A000001'
ELSEは
BEGIN
SET @nextNo = RIGHT(@flowNoを、6)+1
SET @flowNo = LEFT(flowNo @、1)+ REPLICATE( '0'、6-LEN(@nextNo))+ CONVERT(VARCHAR(6)、@ nextNo)
END
SELECT @flowNo; -要获取的流水号

 


- 2001 Zに対応する対応するAに対応する1,2009 9,2010、2035に対応する、2035年後に調整することができる
SUBSTRING( - 2000)36,1% '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'、(年(GETDATE()))を選択し

- 10月、11月、12月、それぞれA、B、C
SUBSTRING( '123456789ABC'、MONTH(GETDATE()),. 1)を選択

-月の英語の略語
SELECT SUBSTRING( 'JanFebMarAprMayJunJulAugSepOctNovDec'、( MONTH(GETDATE()) - 1)* 3 + 1,3)

- 1そう、1,9- Aに対応9,10に対応する日数に対応する
SELECT SUBSTRING( '123456789ABCDEFGHIJKLMNOPQRSTUV'、DAY (GETDATE())、1)

 

3.補助

-重複データを削除する、データテーブルは、多くの重複データを有する、請求ならCOL1、COL2、COL3、COL4、 COL5 重複データの各セットを示すことができる
。WITH CTE AS
(SELECT COL1、COL2、COL3、COL4、 COL5
、ROW_NUMBER ()OVER(COL1、COL2、COL3、COL4、ORDER BY COL1 COL5 BY PARTITION)AS RN
tableNameのFROM)
DELETE FROM CTE WHERE RN> 1


-すぐにオープンストアドプロシージャ、ビュー、
sp_helptextをストアドプロシージャの名前-名前がDBO前所有者を追加しないでください。
sp_helptextをビュー名を-名前を入れないよう、元の所有者のDBOとして


-特定の文字列のビューの使用、ストアドプロシージャ
。SELECT a.name、B [テキスト]
A FROM sysobjectsに
INNER BのJOINのsyscommentsが= ONのa.idがB.ID
WHERE B [テキスト]をチェックしたいLIKE「%。文字列% '
AND a.xtype =' V ' - ' P '

おすすめ

転載: www.cnblogs.com/gyxianzg/p/12051830.html