SQL SERVER中的Reverse函式

2021-06-01 09:50:15 字數 1245 閱讀 8112

sql server中的reverse函式

reverse返回字串值的逆向值。如果其他型別使用reverse函式,系統會先轉換成字元型別然後再使用reverse函式。下面舉幾個例子:

1.    varchar型別

declare @myvar varchar(10)

set @myvar = 'sdrawkcab'

select reverse(@myvar) as reversed ;

go--結果

backwards

2.    int型別

declare @i int

set @i = 123450

select reverse(@i) as reversed ;

go--結果

054321

其實從這個結果,可以很明顯看出先轉換成字串然後再逆向的。

3.    二進位制

使用二進位制時,發生點小意外:

declare @b varbinary(100)

set @b = 0x7788

select convert(varbinary(100), reverse(@b))

go--結果

0x77

按理說,返回結果應該是0x8877,怎麼回事呢?原來問題出在二進位制向字串轉換上。我的資料庫的字串排序規則是chinese_prc_ci_as,在這種排序規則下0x88是不能轉換的,所以0x88丟了。知道原因後,再用進行下面的測試,結果就正確了。

declare @tab table(col1 varchar(100)  collate latin1_general_bin,

col2 varchar(100))

insert into @tab

values(0x7788, 0x7788)

select convert(varbinary(100), col1),

convert(varbinary(100), col2),

convert(varbinary(100),reverse(col1)),

convert(varbinary(100),reverse(col2))

from @tab

go--結果

0x7788 0x77 0x8877 0x77

參考文獻

1.  

Objective C 字串的反轉Reverse

oc中字串的反轉方式可以用兩種方式來處理 第一種 從頭到尾取出字串的每乙個字元,然後將其從尾到頭新增到可變的字串中,最後輸出即可。第二種 將oc內部的字串轉換為c語言中的字串,然後動態分配乙個陣列,然後將字串內容拷貝到陣列中,進行首尾交換操作。共進行陣列長度 2次操作。方式一 oc版本 1 nsmu...

SQL Server中的查詢

本博文簡單介紹一下sql server中常用的幾類查詢及相關使用的方法。一 executescalar方法獲取單一值 executescalar方法是sqlcommand類的方法之一,執行查詢,並返回查詢所返回的結果集中的第一行第一列。csharp view plain copy print cla...

SQL Server中row number的用法

row number 函式將針對select語句返回的每一行,從1開始編號,賦予其連續的編號。在查詢時應用了乙個排序標準後,只有通過編號才能夠保證其順序是一致的,當使用row number函式時,也需要專門一列用於預先排序以便於進行編號。row number 常用的幾種情況 1.使用row numb...