sql >> Databáze >  >> RDS >> Sqlserver

Jak funguje funkce QUOTENAME() v SQL Server (T-SQL)

V SQL Server T-SQL QUOTENAME() funkce vrací řetězec Unicode s přidanými oddělovači, aby byl vstupní řetězec platným oddělovacím identifikátorem SQL Server.

Byl navržen pro citování databází a jejich objektů.

Funkce přijímá dva argumenty; vstupní řetězec (povinný) a oddělovací znak (volitelné).

Syntaxe

Syntaxe vypadá takto:

QUOTENAME ( 'character_string' [ , 'quote_character' ] )

Kde řetězec_znaků je vstupní řetězec a quote_character je volitelný argument k určení znaku, který se má použít jako oddělovač. Pokud je vynechán, použijí se jako oddělovač závorky.

Všimněte si, že řetězec_znaků je název systému a je omezena na 128 znaků. Vstupy delší než 128 znaků vrátí NULL .

Platné oddělovače (pro volitelný quote_character argument) jsou:

  • ` (backtick)
  • ' (jednoduché uvozovky)
  • " (dvojité uvozovky)
  • [] (levá nebo pravá závorka)
  • () (levá nebo pravá závorka)
  • <> (znaménko menší nebo větší než)
  • {} (levá nebo pravá závorka)

Příklad 1 – Základní použití

Zde je příklad, jak to funguje:

SELECT QUOTENAME('cat[]dog') AS Result;

Výsledek:

+-------------+
| Result      |
|-------------|
| [cat[]]dog] |
+-------------+

Příklad 2 – Vlastní oddělovač

Zde je příklad zadání jiného oddělovače:

SELECT QUOTENAME('cat[]dog', '}') AS Result;

Výsledek:

+------------+
| Result     |
|------------|
| {cat[]dog} |
+------------+

A co se stane, když změníme střední závorky na složené závorky:

SELECT QUOTENAME('cat{}dog', '}') AS Result;

Výsledek:

+-------------+
| Result      |
|-------------|
| {cat{}}dog} |
+-------------+

Příklad 3 – Neplatný vstupní řetězec

Jak již bylo zmíněno, vstupní řetězec je sysname , a proto je omezena na 128 znaků. název systému je systémem dodaný uživatelsky definovaný datový typ, který je funkčně ekvivalentní nvarchar(128) , kromě toho, že není nulovatelný. název systému se používá k odkazování na názvy databázových objektů.

Co se stane, pokud je vstupní řetězec příliš dlouhý:

SELECT QUOTENAME('This text is too long to be an input string for this function, because it contains more than 128 characters - too long for sysname.') AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Příklad 4 – Neplatný oddělovač

Pokud zadáte neplatný oddělovač, stane se toto:

SELECT QUOTENAME('cat[]dog', '!') AS Result;

Výsledek:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

  1. Jak vypočítat klouzavý průměr v PostgreSQL

  2. Vraťte seznam vypočítaných sloupců na serveru SQL Server

  3. Len() vs datalength() v SQL Server 2005

  4. Jak zkontrolovat, které zámky drží na stole