1. ホーム
  2. データベース
  3. mssql2008

SQLServerの共通関数の概要説明

2022-01-08 01:53:46

SQLServerでよく使われる関数

文字列関数

len() は、文字列の長さを計算します。

select LEN(name) from test1 -- Calculate the length of name

格変換 lower() upper()

select lower('STUDENT !')
select upper('STUDENT !')


ltrim() の文字列の左側と rtrim() の文字列の右側からスペースを削除する

declare @str varchar(100) = ' a a a a '
select ltrim(@str)
select rtrim(@str)


文字列インターセプト部分文字列() 左() 右()

select substring('HelloWorld!',6,6) -- can intercept any length
select left('HelloWorld!' ,5) ---intercept from the left
select right('HelloWorld!' ,6) ---intercept from the right


文字列の置換 replace()

select replace('HelloWorld!','o','e') --string, the string to be replaced, the string to replace


文字列 順番を落とす reverse()

select reverse('abc') --cba


文字列 2 の中の文字列 1 のアンポジションを返します charindex()

charindex(srt1 ,srt2) -- the starting position of srt1 in srt2

select charindex('H','elloHWorld') result is: 5 -- can only check the first occurrence of the position, does not match return 0

文字列の値を指定された回数だけ繰り返す replicate()

select replicate('abc',4) The result is: abcabcabcabc

集計機能

集計関数は、一連の値を計算した後に単一の値を返します。count関数を除いて、すべての集約関数はNULL値を無視して計算を行います。すべての集計関数は決定論的である。

avg() は、一連の数値を合計し、null の数で割って平均値を求めます。

select avg(id) from test1 avg(column name)

min() max()

select min(id) from test1
select max(id) from test1


sum sum()

select sum(id) from test1


合計を数える count()

select count(id) from test1


グループ化

Count and sort students' total scores
select stu_id as student number ,name as student name , SUM(Language+English+Math+Algebra) as total scorefrom tb_stuAchievement 
ORDER BY total score DESC
GROUP BY stu_id ,name 


(機能は完全ではないかもしれない、私は私が使用したものを記録し、完全な機能は、マニュアルをチェックすることができます)

日付と時刻の機能

現在の日付を取得する GetDate

select getdate() 


GetUTCDate UTC 時間値を取得する

select GETUTCDATE()


年、月、日を別々に取得する

select year(getdate())
select month(getdate())
select day(getdate())


日付の引き算 DATEDIFF

select datediff(YYYY,'2011-11-11','2012-12-12') --output 1 The year is indeed 1 after subtracting
select datediff(day,'2011-11-11','2012-12-12') --output 397 number of days difference between two dates


SQLServer 2008 の新しい日付時間関数

1、Get the system time SysDateTime()
2、Get the current date and time SysDateTimeOffset
3、Get the system UTC time SysUTCDateTime
4、Current_TimeStamp current database system timestamp
5, determine whether the date data isDate
		select isdate('2012-12-12') -- output 1
     select isdate('xxxx-12-12') -- output 0


(機能は完全ではないかもしれない、私はそれの一部だけを記録し、完全な機能はマニュアルをチェックすることができます)

MID() テキスト・フィールドから文字を抽出します。

SELECT MID(City,1,3) as SmallCity FROM Persons


ROUND()関数 数値フィールドを指定された小数点以下の桁数で丸める。

SELECT ROUND(column_name,decimals) FROM table_name


NOW()関数は、現在の日付と時刻を返します。

SELECT NOW() FROM table_name


FORMAT () は、フィールドの表示をフォーマットするために使用します。

select FORMAT(stu_intime,'yyyy-MM-dd hh:mm:ss') as intime from stu


SELECT INTO あるテーブルからデータを選択し、それを別のテーブルに挿入する。

select stu_name,stu_id into stu1 from stu --insert stu_id and stu_name from the stu table into the new stu1 table (will create a new table)


sql serverには制限がありませんが、topにはあります。

/* Query m data starting from n *  declare @n int = 2;
  declare @m int = 5;
  select top (@m) * from stu
  where id not in (select top (@n) id from stu)

  /* Query data between n and m *  declare @n int = 2;
  declare @m int = 5;
  select top (@m-@n+1) * from stu
  where id not in (select top (@n-1) id from stu)


BETWEEN ... ANDは、2つの値の間のデータの範囲を選択します。これらの値は、数値、テキスト、または日付です。

/* Query the data for ids 1 to 3 *  select * from stu where id between '1' and '3' 

ALTER TABLE文は、既存のテーブルにカラムを追加、変更、または削除するために使用します。

 alter table stu add stu_sj varchar(200) --add a column named stu_sj

 alter table stu drop column stu_sj --delete column


DISTINCTは、一意に異なる値を返すために使用されます。

/* return the name, duplicates are not returned *  select distinct stu_name from stu


SQLServerの共通関数の概要に関するこの記事は、これに導入され、より関連するSQLServerの共通関数の内容は、以前の記事のスクリプトホームを検索してくださいまたは次の関連記事を閲覧し続けることは、スクリプトホームをよりサポートすることを願っています!.