SQLServer的TSQL语法中有没有位操作函数?高分相送!

gaisylly 2003-12-07 10:11:03
TSQL中有没有现成的位操作函数,或者自定义函数也可以,高分相送!
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lvltt 2003-12-08
  • 打赏
  • 举报
回复
按位运算符

位运算符可用于 int、smallint 或 tinyint 数据。~(按位 NOT)运算符还可用于 bit 数据。所有位运算符对一个或多个指定的整型值在 Transact-SQL 语句中转换为二进制表达式时执行计算。例如,~(按位 NOT)运算符将二进制 1 变为 0 而将 0 变为 1。若要检查位运算,请转换或计算十进制数值。
按位运算符根据对逻辑表达式的检查返回 TRUE 或 FALSE 值。因为支持 TRUE 和 FALSE 常量,所以下面的两个 MDX 表达式现在都是有效的:

([Measures].[IsTrue] AND [Measures].[IsFalse]) = 0
([Measures].[IsTrue] AND [Measures].[IsFalse]) = FALSE

逻辑运算符要求可取值为逻辑值的表达式。数值表达式在执行逻辑比较前隐式转换为逻辑值。任何取值为 0 或 NULL 的数值表达式视为 FALSE,而任何取值为 0 以外的值的数值表达式视为 TRUE。字符串表达式不进行隐式转换;试图对字符串表达式使用按位运算符将产生错误
具体看联机帮助。
welyngj 2003-12-07
  • 打赏
  • 举报
回复
sorry!上面的应该是SELECT dbo.Dec_Bin(9)

--十进制转化为八进制数
CREATE FUNCTION Dec_Hex(@decimal INT)
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @bin VARCHAR(20)
SET @bin=''
WHILE @decimal!=0
BEGIN
SET @bin=CAST(@decimal%8 AS VARCHAR(20))+@bin
SET @decimal=@decimal/8
END
RETURN(@bin)
END


SELECT dbo.Dec_Hex(10)

welyngj 2003-12-07
  • 打赏
  • 举报
回复
--十进制转化为二进制数
CREATE FUNCTION Dec_Bin(@decimal INT)
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @bin VARCHAR(20)
SET @bin=''
WHILE @decimal!=0
BEGIN
SET @bin=CAST(@decimal%2 AS VARCHAR(20))+@bin
SET @decimal=@decimal/2
END
RETURN(@bin)
END

SELECT Dec_Bin(9)
CrazyFor 2003-12-07
  • 打赏
  • 举报
回复
按位运算符
位运算符在两个表达式之间执行位操作,这两个表达式可以为整型数据类型分类中的任何数据类型。

运算符 含义
&(按位 AND) 按位 AND(两个操作数)。
|(按位 OR) 按位 OR(两个操作数)。
^(按位互斥 OR) 按位互斥 OR(两个操作数)。


位运算符的操作数可以是整型或二进制字符串数据类型分类中的任何数据类型(但 image 数据类型除外),此外,两个操作数不能同时是二进制字符串数据类型分类中的某种数据类型。下表显示所支持的操作数数据类型。

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧