java - 如何在 SQL Server 2012 中查询或插入值到二进制(1)字段?

标签 java sql sql-server binary sql-server-2012

我尝试用谷歌搜索一段时间,但找不到任何东西,但如果这确实很明显,我深表歉意。

我有一个长度始终为 8 的 boolean 数组,我想将相应的二进制值插入到 binary(1) 字段中。我使用的是 SQL Server 2012。

目前,我将其转换为字符串,例如 "10100101",并创建一个类似于 "INSERT INTO Table1 VALUES('10100101');"的查询字符串 还一直在尝试获得相当于 "SELECT * FROM Table1 WHERE bin_val=10100101;"

SELECT 语句

当我执行该语句时,我总是遇到语法错误。我尝试了多种变体(例如带/不带引号等,并将数字设置为不同的格式,例如 "0xA5"),但没有成功。

有什么建议吗?

p.s用java编写代码

最佳答案

首先,您需要将二进制数转换为十进制数。然后,您只需将该值转换为数据类型 BINARY 即可。因此,假设您的字符串始终是 8 位长,您可以尝试以下操作:

DECLARE @BinaryNumber CHAR(8)
SET @BinaryNumber = '10100101'
INSERT INTO Table1
SELECT  CAST(SUBSTRING(@BinaryNumber,8,1)+
             SUBSTRING(@BinaryNumber,7,1)*2+
             SUBSTRING(@BinaryNumber,6,1)*4+
             SUBSTRING(@BinaryNumber,5,1)*8+
             SUBSTRING(@BinaryNumber,4,1)*16+
             SUBSTRING(@BinaryNumber,3,1)*32+
             SUBSTRING(@BinaryNumber,2,1)*64+
             SUBSTRING(@BinaryNumber,1,1)*128 AS BINARY(1))

关于java - 如何在 SQL Server 2012 中查询或插入值到二进制(1)字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14881588/

相关文章:

java - 是否有更快的方法将任意字符串与 Java 中的月份名称匹配

java - Hibernate CriteriaBuilder 将多行连接成一行

php - 如何在已有的MYSQL数据库表中添加列条目?

sql-server - 在 SQL Server 2005 中的大表上更新为 "not in"

sql-server - 获取sql server中重复多次的2个字符之间的字符串

sql-server - :result-set-fn in clojure jdbc return error "The result set is closed." Why?

Java-使用for循环将字母表放入数组中

使用 URLConnection 时出现 java.lang.NegativeArraySizeException

java - 如何使用 JAXB 生成其元素可以包含字符串或 XML 的类?

sql - Rails,在最后一个之前找到对象,例如 -1