如何将sql查询得到数字按大小转换成字母输出?

比如说:sql查询得到no的值为1001,1002,1003,1004,...我想输出为A,B,C,D...,请问如何转换?
如果sql无法转换,如何用vb.net转换?(程序是vb.net写的)
具体数字不一定是从小到大,而且可能有重复的,比如12,12,14,9,9,132...等

转换的方式有很多种,但是最主要的是你需要制定转换的规则。
比如什么值转换成A,什么值转换成B。这个需要一定的规则,要不然程序是无法知道一个数值要转换成什么字母的。

你可以在sql文里做转换,比如oracle的decode函数,以及sqlserver的iif函数,只不过这个比较适用于较少数据项的转换,你这种情况不太适合用这两个函数进行转换。

你也可以在数据库里做一张配置表,把数值跟字母对应起来,这样查询的时候,根据no值和配置表做一个对应,这样查询出来的结果就是转换后的字母了。

你也可以用xml或者其他文件做一个配置文件,把no值作为key,把字母当成value。程序加载时,把它读到hashtable里边去,hashtable是k-v方式存储数据的,因此转换的时候,你只要把no值当成key传到hashtable里边去就能获取到响应的字母了。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
hashtable.Add(1001, "A")
hashtable.Add(1002, "B")
hashtable.Add(1003, "C")
hashtable.Add(1004, "D")

MessageBox.Show(Exchange(1001))

End Sub

Public Function Exchange(ByVal source As Integer) As String
Return hashtable.Item(source).ToString
End Function

总之,最主要的是制定一个转换规则。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-12
自己定义一个函数,里面是转换规则,然后就OK了
相似回答