相关疑难解决方法(0)

在这里使用varbinary over varchar有什么好处?

前一段时间我问了一个关于SQL Server中层次结构/版本号排序的问题.( 如何使用SQL Server查询对"版本号"列进行排序).

提交的答案中包含了与TSQL编码挑战相关的链接.

在SQL2000解决方案中,作者演示了两个变体,一个使用并返回varchar,另一个使用varbinary.作者解释说他没有解释为什么这样做.

那么,我的问题是,方法上的差异有哪些主要差异/优势(如果有的话)?即为什么使用varbinary而不是varchar?

我省略了发布代码,因为它在上面的文章中总结得最为优雅.

sql sql-server varchar varbinary

19
推荐指数
2
解决办法
2万
查看次数

按1.99.10和1.99.9 sql server排序

抱歉我的错误,我应该提供问题的真实样本,我的ID包括里面的字符:

示例代码:

select ID from student order by ID

Expected output from mine          but system output
-------------------------          -----------------
JAD.1.99.9                             JAD.1.99.10
JAD.1.99.10                            JAD.1.99.9
Run Code Online (Sandbox Code Playgroud)

IDnvarchar类型.

sql sql-server-2008

6
推荐指数
1
解决办法
153
查看次数

如何在T-SQL中获取版本号(varchar)列的MAX值

我有一个像这样定义的表:

Column:  Version     Message
Type:    varchar(20) varchar(100)
----------------------------------
Row 1:    2.2.6       Message 1
Row 2:    2.2.7       Message 2
Row 3:    2.2.12      Message 3
Row 4:    2.3.9       Message 4
Row 5:    2.3.15      Message 5
Run Code Online (Sandbox Code Playgroud)

我想编写一个T-Sql查询,它将获取MAX版本号的消息,其中"Version"列表示软件版本号.即2.2.12大于2.2.7,2.3.15大于2.3.9等等.不幸的是,如果不使用CHARINDEX或其他复杂的其他类似分裂的逻辑,我想不出一个简单的方法. .运行此查询:

SELECT MAX(Version) FROM my_table
Run Code Online (Sandbox Code Playgroud)

会产生错误的结果:

2.3.9

什么时候真的应该是2.3.15.任何不太复杂的好主意?

t-sql sql-server sorting varchar max

3
推荐指数
1
解决办法
3756
查看次数

标签 统计

sql ×2

sql-server ×2

varchar ×2

max ×1

sorting ×1

sql-server-2008 ×1

t-sql ×1

varbinary ×1