1

我对 SQL Server 有一个相当愚蠢的问题。我正在尝试将 BigInt 存储在 SQL Server 中,并认为可以在将其插入Nvarchar(Max)-style 字段之前将其转换为字符串。

但是,我需要SELECT针对该列运行一个语句,因为它是一个字符串,我不知道如何评估它。我知道某些语言中的字符串确实以数字方式计算,因此“234234”被认为小于“2342545345344”。可以在这里做类似的事情吗?

编辑: 爆炸,我是个白痴。我的意思是说 C# 的 BigInteger,它可以保存比 SQL 的 BigInt 大得多的值。

4

2 回答 2

2
order by cast(varchar_column as bigint)
于 2012-06-18T07:20:47.130 回答
1

SELECT你会表演什么类型的?作为快速的第一步(假设所有值都是正数,并存储为数字序列(没有科学记数法或符号)),您可以比较两个字符串的长度。

较短的字符串是两者中较小的。如果两个字符串长度相同,则较小的字符串(按字母顺序)在数字上较小。

因此,输出小于0,等于,大于:ab12ab

CASE
  WHEN LEN(a) < LEN(b) THEN 0
  WHEN LEN(a) > LEN(b) THEN 2
  WHEN a < b THEN 0
  WHEN a > b THEN 2
  ELSE 1
END
于 2012-06-18T09:37:56.080 回答