5.2 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | e8cd92bba3 |
52 | Kodlamış |
Kodlama fonksiyonları
kömürleşmek
Geçirilen bağımsız değişkenlerin sayısı olarak uzunluğu olan dizeyi döndürür ve her bayt karşılık gelen bağımsız değişken değerine sahiptir. Sayısal türlerin birden çok bağımsız değişkeni kabul eder. Bağımsız değişken değeri uint8 veri türü aralığının dışındaysa, Olası yuvarlama ve taşma ile Uint8'e dönüştürülür.
Sözdizimi
char(number_1, [number_2, ..., number_n]);
Parametre
number_1, number_2, ..., number_n
— Numerical arguments interpreted as integers. Types: Tamsayı, Yüzdürmek.
Döndürülen değer
- verilen bayt dizisi.
Tür: String
.
Örnek
Sorgu:
SELECT char(104.1, 101, 108.9, 108.9, 111) AS hello
Sonuç:
┌─hello─┐
│ hello │
└───────┘
Karşılık gelen baytları geçirerek bir rasgele kodlama dizesi oluşturabilirsiniz. İşte UTF-8 için örnek:
Sorgu:
SELECT char(0xD0, 0xBF, 0xD1, 0x80, 0xD0, 0xB8, 0xD0, 0xB2, 0xD0, 0xB5, 0xD1, 0x82) AS hello;
Sonuç:
┌─hello──┐
│ привет │
└────────┘
Sorgu:
SELECT char(0xE4, 0xBD, 0xA0, 0xE5, 0xA5, 0xBD) AS hello;
Sonuç:
┌─hello─┐
│ 你好 │
└───────┘
büyü
Bağımsız değişkenin onaltılık gösterimini içeren bir dize döndürür.
Sözdizimi
hex(arg)
İşlev büyük harfler kullanıyor A-F
ve herhangi bir önek kullanmamak (gibi 0x
) veya sonekler (gibi h
).
Tamsayı argümanları için, onaltılık basamak yazdırır (“nibbles”) en önemliden en önemlisine (big endian veya “human readable” sipariş). En önemli sıfır olmayan baytla başlar (önde gelen sıfır bayt atlanır), ancak önde gelen basamak sıfır olsa bile her baytın her iki basamağını da yazdırır.
Örnek:
Örnek
Sorgu:
SELECT hex(1);
Sonuç:
01
Tip değerleri Date
ve DateTime
karşılık gelen tamsayılar olarak biçimlendirilir (tarih için çağdan bu yana geçen gün sayısı ve datetime için Unix zaman damgasının değeri).
İçin String
ve FixedString
, tüm bayt sadece iki onaltılık sayı olarak kodlanır. Sıfır bayt ihmal edilmez.
Kayan nokta ve ondalık türlerinin değerleri, bellekteki gösterimi olarak kodlanır. Küçük endian mimarisini desteklediğimiz için, bunlar küçük endian'da kodlanmıştır. Sıfır önde gelen / sondaki bayt ihmal edilmez.
Parametre
arg
— A value to convert to hexadecimal. Types: Dize, Uİnt, Yüzdürmek, Ondalık, Tarihli veya DateTime.
Döndürülen değer
- Bağımsız değişken onaltılık gösterimi ile bir dize.
Tür: String
.
Örnek
Sorgu:
SELECT hex(toFloat32(number)) as hex_presentation FROM numbers(15, 2);
Sonuç:
┌─hex_presentation─┐
│ 00007041 │
│ 00008041 │
└──────────────────┘
Sorgu:
SELECT hex(toFloat64(number)) as hex_presentation FROM numbers(15, 2);
Sonuç:
┌─hex_presentation─┐
│ 0000000000002E40 │
│ 0000000000003040 │
└──────────────────┘
unhex (str)
Onaltılık basamak herhangi bir sayıda içeren bir dize kabul eder ve karşılık gelen bayt içeren bir dize döndürür. Hem büyük hem de küçük harfleri destekler a-F. onaltılık basamak sayısı bile olmak zorunda değildir. Tek ise, son rakam 00-0F baytın en az önemli yarısı olarak yorumlanır. Bağımsız değişken dizesi onaltılık basamaklardan başka bir şey içeriyorsa, uygulama tanımlı bazı sonuçlar döndürülür (bir özel durum atılmaz). Sonucu bir sayıya dönüştürmek istiyorsanız, ‘reverse’ ve ‘reinterpretAsType’ işlevler.
UUİDStringToNum (str)
Biçiminde 36 karakter içeren bir dize kabul eder 123e4567-e89b-12d3-a456-426655440000
ve bir fixedstring(16) bayt kümesi olarak döndürür.
UUİDNumToString (str)
FixedString(16) değerini kabul eder. Metin biçiminde 36 karakter içeren bir dize döndürür.
bitmaskToList (num)
Bir tamsayı kabul eder. Özetlendiğinde kaynak sayısını toplayan iki güç listesini içeren bir dize döndürür. Artan düzende metin biçiminde boşluk bırakmadan virgülle ayrılırlar.
bitmaskToArray (num)
Bir tamsayı kabul eder. Özetlendiğinde kaynak sayısını toplayan iki güç listesini içeren bir uint64 sayı dizisi döndürür. Dizideki sayılar artan düzendedir.