网站黄色在线观看视频,男人和女人操逼有免费的视频吗2018高清,91熟女丨老女人丨高潮丰满,丝袜高潮流白浆潮喷在线播放

聯(lián)系我們

400-002-9968

售前咨詢

售后服務(wù)

注冊(cè) 登錄

博客 > SQL知識(shí):SQL高級(jí)字符處理函數(shù)

SQL知識(shí):SQL高級(jí)字符處理函數(shù)

  • 標(biāo)簽:
  • SQL
  • SQL字符處理函數(shù)
  • SQL函數(shù)
  • 字符處理函數(shù)

瀏覽量:1225次評(píng)論:0次

作者:銳成網(wǎng)絡(luò)整理時(shí)間:2024-07-26 15:55:23

SQL是一種結(jié)構(gòu)化查詢語(yǔ)言,主要用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。為了提高數(shù)據(jù)操作,掌握SQL高級(jí)字符處理函數(shù)很有必要。本文將為您介紹幾種SQL高級(jí)字符處理函數(shù),包括CHARINDEX、CONCAT_WS、FORMAT、PATINDEX、REPLICATE等的作用、語(yǔ)法、示例等,僅供大家參考。

SQL知識(shí):SQL高級(jí)字符處理函數(shù)

1、CHARINDEX

作用

會(huì)在第二個(gè)字符表達(dá)式中搜索一個(gè)字符表達(dá)式,這將返回第一個(gè)表達(dá)式(如果發(fā)現(xiàn)存在)的開(kāi)始位置。

語(yǔ)法

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

注:這是一個(gè)常用的字符搜索函數(shù),起始下標(biāo)是1,不是0。

如果加了起始下標(biāo),會(huì)從忽略起始下標(biāo)前面的字符,往后面搜索。

不加起始值示例

SELECT CHARINDEX('數(shù)據(jù)',
'SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)')

結(jié)果

添加起始值示例

SELECT CHARINDEX('數(shù)據(jù)',
'SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)',6)

結(jié)果

2、CONCAT_WS

作用

以端到端的方式返回從串聯(lián)或聯(lián)接的兩個(gè)或更多字符串值生成的字符串。它會(huì)用第一個(gè)函數(shù)參數(shù)中指定的分隔符分隔連接的字符串值。(CONCAT_WS 指示使用分隔符連接。)

語(yǔ)法

CONCAT_WS ( separator, argument1, argument2 [, argumentN]... )

注:CONCAT_WS 會(huì)忽略列中的 NULL 值。用 ISNULL 函數(shù)包裝可以為 null 的列,并提供默認(rèn)值。

示例

SELECT CONCAT_WS('-','SQL',
'數(shù)據(jù)庫(kù)',NULL,'開(kāi)發(fā)')

結(jié)果:

3、FORMAT

作用

返回使用指定格式和可選區(qū)域性格式化的值。使用 FORMAT 函數(shù)將日期/時(shí)間和數(shù)字值格式化為識(shí)別區(qū)域設(shè)置的字符串。對(duì)于一般的數(shù)據(jù)類型轉(zhuǎn)換,請(qǐng)使用 CAST 或 CONVERT。

語(yǔ)法

FORMAT ( value, format [, culture ] )

注意:

FORMAT 將返回 NULL 錯(cuò)誤,而不是非 valid 的 culture 。例如,如果 format 中指定的值無(wú)效,則返回 NULL 。

FORMAT 函數(shù)具有不確定性。

FORMAT 依賴于 .NET Framework 公共語(yǔ)言運(yùn)行時(shí) (CLR) 的存在。

此函數(shù)無(wú)法進(jìn)行遠(yuǎn)程處理,因?yàn)樗蕾囉?CLR 的存在。遠(yuǎn)程處理需要 CLR 的函數(shù)可能導(dǎo)致在遠(yuǎn)程服務(wù)器上出現(xiàn)錯(cuò)誤。

日期格式示例

DECLARE @d DATETIME = '7/25/2024';
SELECT FORMAT(@d,'d','en-US') AS '美國(guó)格式'  
      ,FORMAT(@d,'d','en-gb') AS '英國(guó)格式'  
      ,FORMAT(@d,'d','de-de') AS '德國(guó)格式'  
      ,FORMAT(@d,'d','zh-cn') AS '中文格式';
  
SELECT FORMAT(@d,'D','en-US') AS '美國(guó)格式'  
      ,FORMAT(@d,'D','en-gb') AS '英國(guó)格式'  
      ,FORMAT(@d,'D','de-de') AS '德國(guó)格式'  
      ,FORMAT(@d,'D','zh-cn') AS '中文格式';

結(jié)果

自定義格式示例

SELECT FORMAT( GETDATE(),
    'dd/MM/yyyy', 'zh-cn' ) AS '自定義日期'  
      ,FORMAT(123456789,
'###-##-####') AS '自定義數(shù)字';

結(jié)果

數(shù)值格式示例

SELECT FORMAT(1.127456,
       'N','zh-cn') AS '四舍五入格式'  
       ,FORMAT(1.123456, 
       'G', 'zh-cn') AS '一般格式'  
       ,FORMAT(1.123456, 
       'C', 'zh-cn') AS '貨幣格式'

結(jié)果

4、PATINDEX

作用

返回模式在指定表達(dá)式中第一次出現(xiàn)的起始位置;如果在所有有效的文本和字符數(shù)據(jù)類型中都找不到該模式,則返回零。該函數(shù)與CHARINDEX比較相似

語(yǔ)法

PATINDEX ( '%pattern%' , expression )

注意

如果 pattern 或 expression 為 NULL,則 PATINDEX 返回 NULL 。

PATINDEX 的起始位置為 1。

PATINDEX 基于輸入的排序規(guī)則執(zhí)行比較。若要以指定排序規(guī)則進(jìn)行比較,則可以使用 COLLATE 將顯式排序規(guī)則應(yīng)用于輸入。

示例

SELECT PATINDEX('%數(shù)據(jù)庫(kù)%', 'SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)');

結(jié)果

在 PATINDEX 中使用通配符示例

使用 % 和 _ 通配符查找模式 '數(shù)'(后跟任意一個(gè)字符和 '庫(kù)')在指定字符串中的開(kāi)始位置(索引從 1 開(kāi)始)

SELECT PATINDEX('%數(shù)_庫(kù)%', 'SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)');

結(jié)果

5、REPLICATE

作用

以指定的次數(shù)重復(fù)字符串值。

語(yǔ)法

REPLICATE ( string_expression ,integer_expression )

示例

SELECT '2'+REPLICATE ('3',5)

結(jié)果

6、REVERSE

作用

返回字符串值的逆序。

語(yǔ)法

REVERSE ( string_expression )

示例

SELECT REVERSE('SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)')

結(jié)果

7、STRING_AGG

作用

串聯(lián)字符串表達(dá)式的值,并在其間放置分隔符值。不能在字符串末尾添加分隔符。

語(yǔ)法

STRING_AGG ( expression, separator ) [ <order_clause> ]

注意

STRING_AGG 是一個(gè)聚合函數(shù),用于提取行中的所有表達(dá)式,并將這些表達(dá)式串聯(lián)成一個(gè)字符串。表達(dá)式值隱式轉(zhuǎn)換為字符串類型,然后串聯(lián)在一起。隱式轉(zhuǎn)換為字符串的過(guò)程遵循現(xiàn)有的數(shù)據(jù)類型轉(zhuǎn)換規(guī)則。

如果輸入表達(dá)式的類型為 VARCHAR,則分隔符的類型不能是 NVARCHAR。

null 值會(huì)被忽略,且不會(huì)添加相應(yīng)的分隔符。若要為 null 值返回占位符,請(qǐng)使用 ISNULL 函數(shù),如示例 B 中所示。

STRING_AGG 適用于任何兼容級(jí)別。

示例

WITH t AS (
 SELECT '張三' Name,'語(yǔ)文' Course,89 Score
 UNION ALL
 SELECT '張三' ,'數(shù)學(xué)' ,91 
  UNION ALL
 SELECT '李四' ,'語(yǔ)文' ,78 
  UNION ALL
 SELECT '李四' ,'數(shù)學(xué)' ,96 
 )

 SELECT Name,
 STRING_AGG(Course,',') Course ,
 STRING_AGG(Score,',') Score
 FROM t
 GROUP  BY Name

結(jié)果

8、STRING_SPLIT

作用

一個(gè)表值函數(shù),它根據(jù)指定的分隔符將字符串拆分為子字符串行。

語(yǔ)法

STRING_SPLIT ( string , separator )

注意

STRING_SPLIT 輸入包含分隔子字符串的字符串,并輸入一個(gè)字符用作分隔符。STRING_SPLIT 輸出其行包含子字符串的單列表。輸出列的名稱為“value”。

輸出行可以按任意順序排列。順序不保證與輸入字符串中的子字符串順序匹配??梢酝ㄟ^(guò)在 SELECT 語(yǔ)句中使用 ORDER BY 子句覆蓋最終排序順序 (ORDER BY value)。

當(dāng)輸入字符串包含兩個(gè)或多個(gè)連續(xù)出現(xiàn)的分隔符字符時(shí),將出現(xiàn)長(zhǎng)度為零的空子字符串??兆幼址奶幚矸绞脚c普通子字符串相同??梢酝ㄟ^(guò)使用 WHERE 子句篩選出包含空的子字符串的任何行 (WHERE value <> '')。如果輸入字符串為 NULL,則 STRING_SPLIT 表值函數(shù)返回一個(gè)空表。

示例一

SELECT Value FROM 
STRING_SPLIT('SQL-數(shù)據(jù)庫(kù)-開(kāi)發(fā)', '-');

結(jié)果

示例二

WITH t AS (
 SELECT 1 ID,'張三' Name,
 '足球,籃球,羽毛球' Hobby
 UNION ALL
 SELECT 2 ,'李四','足球,游泳,爬山'
 )


SELECT ID, Name, Value
FROM t
CROSS APPLY STRING_SPLIT(Hobby, ',');

結(jié)果

注意:返回的列不再是Hobby,而是Value,必須寫成Value,否則得不到想要的結(jié)果。這個(gè)與STRING_AGG()函數(shù)的功能相反。

9、STUFF

作用

STUFF 函數(shù)將字符串插入到另一個(gè)字符串中。它從第一個(gè)字符串的開(kāi)始位置刪除指定長(zhǎng)度的字符;然后將第二個(gè)字符串插入到第一個(gè)字符串的開(kāi)始位置。

語(yǔ)法

STUFF ( character_expression , start , length , replaceWith_expression )

注意

如果開(kāi)始位置或長(zhǎng)度值是負(fù)數(shù),或者開(kāi)始位置大于第一個(gè)字符串的長(zhǎng)度,則返回 Null 字符串。如果開(kāi)始位置為 0,則返回 Null 值。如果要?jiǎng)h除的長(zhǎng)度大于第一個(gè)字符串的長(zhǎng)度,則刪除到第一個(gè)字符串中的第一個(gè)字符。

如果結(jié)果值大于返回類型支持的最大值,則會(huì)引發(fā)錯(cuò)誤。

示例

SELECT STUFF('abcdef', 2, 3, 'ijklmn');

結(jié)果

重要聲明:本文來(lái)自SQL數(shù)據(jù)庫(kù)開(kāi)發(fā),經(jīng)授權(quán)轉(zhuǎn)載,版權(quán)歸原作者所有,不代表銳成觀點(diǎn),轉(zhuǎn)載的目的在于傳遞更多知識(shí)和信息。

我的評(píng)論

還未登錄?點(diǎn)擊登錄

微信掃碼溝通
微信掃碼溝通

微信掃碼溝通

AI
return head