|
|
1
21
事实上,使用普通的旧SQL非常简单。只需使用位AND。我有点惊讶,没有一个简单的解决方案发布在网上(不涉及UDF)。在我的例子中,我真的想检查位是开还是关(数据来自dotnet枚举)。
产生以下结果:
|
|
|
2
19
可以将以下内容编码到函数中。您需要删除前导零以满足问题的要求。
|
|
|
3
8
这是一个通用的基极转换器 http://dpatrickcaldwell.blogspot.com/2009/05/converting-decimal-to-hexadecimal-with.html 你能行
|
|
|
4
3
accepted answer from Sean ,因为我发现它限制了输出中只允许硬编码的位数。在我的日常使用中,我发现只获取最高的1位数或指定期望返回的位数更有用。它会自动在边上填充0,这样它就可以排列成8、16或任何你想要的位数。
|
|
|
5
2
由于它是一个内联函数,您不需要“担心”优化器执行的多次读取。
|
|
|
6
1
|
|
|
7
1
|
|
8
1
标准SQL(在PostgreSQL中测试)。 |
|
|
9
1
在SQL Server上,您可以尝试以下示例:
|
|
|
10
1
我知道我在这里玩游戏有点晚了,但我最近提出了一个巧妙的解决方案,它利用了一个统计表(类似于上面的@hkravitz解决方案)。关键的区别是,我的解决方案利用了我所谓的
虚拟索引
按降序排列结果的步骤
. 我使用
请注意,这将按升序返回数字0到30(作为RowNumber的“RN”):
它这样做没有排序。RN可以定义为(ORDER BY(SELECT NULL))上方的行数()。同样,按RN排序不需要排序-这是 在玩。
但是,当我尝试降序排序时 做 在执行计划中获取排序。
有限对立面 . RangeAB包含一个名为 Op 有限的 Op 假定 数字所谓“有限对立面”,我的意思是,0是30的对立面,1是29的对立面,等等。。与传统相反的数字不同(-1与1相反)。有限对立面按降序返回。
返回:
我可以使用Op,我可以利用RN的有限对立面以降序获得数字,同时仍然利用虚拟索引来避免排序。这两个查询返回相同的结果,但是,根据SSM,在比较执行计划时,删除排序将使查询成本降低50倍。
功能
兰盖布
|
|
|
11
0
我相信这个方法简化了很多其他人提出的想法。它使用位运算和
|
|
|
12
0
您可以使用递归CTE表来实现这一点。在本示例代码中,它设置为16位,但您可以通过更改16->来执行任何长度;你的选择。 此外,要转换的数据是可表抽取的
|
|
|
13
0
此函数是一个通用转换器,允许将整数转换为任何基本编号系统(如二进制、八进制、十六进制等)的字符串描述。
udf_INTTOBASEXTR用途:
udf_INTTOBASEXTR结果:
udf\u INTTOBASEXTRU\u最小长度用法:
udf\u INTTOBASEXTRU\u MinLength结果:
|
|
14
0
想要轻松点吗?做一些逐位的数学运算,算出每个二进制数字。
唯一的转折点就是 what Constantin notes
这个版本的价格便宜,使用方便
signed magnitude
在这里,您只需将第一位作为
请注意,SQL Server
|
|
|
15
-1
为什么不干脆。。。
|
|
|
16
-3
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |