Aracılığıyla paylaş


STR (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

Sayısal verilerden dönüştürülmüş karakter verisini döndürür. Karakter verisi sağa doğru düzelmiş, belirli bir uzunluk ve ondalık hassasiyetle sunulur.

Transact-SQL söz dizimi kuralları

Sözdizimi

STR ( float_expression [ , length [ , decimal ] ] )  

Arguments

float_expression

Ondalık nokta içeren yaklaşık sayısal (kayan) veri türünün ifadesi.

length

Ondalık ayırıcı, işaret, basamak ve boşluklar da dahil olmak üzere toplam uzunluk. Varsayılan değer 10'dur.

decimal

Ondalık ayırıcının sağındaki basamak sayısı. ondalık 16'dan küçük veya eşit olmalıdır. Ondalık değer 16'dan fazlaysa, sonuç ondalık noktasının sağındaki 16 basamak olacak şekilde kesilir.

Dönüş Türleri

varchar

Açıklamalar

Sağlanırsa, STR'ye uzunluk ve ondalık parametreler değerleri pozitif olmalıdır. Sayı, varsayılan olarak veya ondalık parametre 0 ise tam sayıya yuvarlanır. Belirtilen uzunluk, ondalık noktadan önceki kısmından ve varsa numaranın işaretinden büyük veya eşit olmalıdır. Kısa bir float_expression belirlenen uzunlukta sağa doğru ayarlanırken, uzun bir float_expression belirtilen ondalık basamak sayısına kadar kısaltılır. Örneğin, STR(12, 10) 12'nin sonucunu verir. Bu, sonuç kümesinde doğru haklı gösterilir. Ancak, STR(1223, 2) sonuç kümesini ** olarak kısaltır. Dizi fonksiyonları iç içe yerleştirilebilir.

Uyarı

Unicode verisine dönüştürmek için, CONVERT veya CAST dönüştürme fonksiyonunun içinde STR kullanın.

Örnekler

Aşağıdaki örnek, beş basamaklı ve ondalık noktadan oluşan bir ifadeyi altı pozisyonlu bir karakter dizimine dönüştürür. Sayının kesirli kısmı bir ondalık basamaya yuvarlanır.

SELECT STR(123.45, 6, 1);  
GO  

Sonuç kümesi aşağıdadır.

------  
 123.5  
  
(1 row(s) affected)  

İfade belirtilen uzunluğu aştığında, dizi belirtilen uzunluk için geri döner ** .

SELECT STR(123.45, 2, 2);  
GO  

Sonuç kümesi aşağıdadır.

--  
**  
  
(1 row(s) affected)  

Sayısal veriler iç içe STRolsa bile, sonuç belirtilen formatta karakter verisi olur.

SELECT STR (FLOOR (123.45), 8, 3);
GO  

Sonuç kümesi aşağıdadır.

--------  
 123.000  
  
(1 row(s) affected)