Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql表中的空格是否支持查询?_Sql_Sql Server_Tsql - Fatal编程技术网

sql表中的空格是否支持查询?

sql表中的空格是否支持查询?,sql,sql-server,tsql,Sql,Sql Server,Tsql,我遇到了一个问题,我正在生成数独游戏,游戏的解决方案以以下格式存储: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 9个集合之间有8个空格,我似乎无法查询该行,它返回一个空行 这是因为有空间吗?如果我执行“选择位置”解决方案,如“xxxxxxxxx

我遇到了一个问题,我正在生成数独游戏,游戏的解决方案以以下格式存储: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

9个集合之间有8个空格,我似乎无法查询该行,它返回一个空行

这是因为有空间吗?如果我执行“选择位置”解决方案,如“xxxxxxxxx%” 然后该行正确返回

我是否只是免费生成了50000行:(如果是这样,我应该如何解决这个间距问题

编辑以下是查询:

select * from sudoktion_puzzles 
where
p_solution='582917643 467283195 391546278 159362784 
674851329 823794561 216438957 938675412 745129836'    

在您引用的查询中,在第二个到最后一个术语(以“9”开头的术语)之前有两个空格。如果这是您的实际查询代码,而不是表中的实际值,则可以解释您的问题。

关于SQL Server(符合ANSI标准)中真正需要记住的空格的唯一特殊之处在
LEN()
或相等比较中没有考虑到尾随的空格

您的数据类型有什么特殊之处吗

它们是否足够长以容纳整个字符串(至少89个字符)

如果要删除空格,只需使用以下方法删除空格:

UPDATE sudoktion_puzzles
SET p_solution = REPLACE(p_solution, ' ', '')

再次检查在任何地方,在之前或之后都没有第二个空格

从sudoktion_拼图中选择*
其中LEN(p_溶液)89

然后查看是否返回了无法获取的行。如果返回了,则会有额外的空格。

嘿,伙计们,这些空格实际上是换行符/输入字符修复了它:

UPDATE sudoktion_puzzles
SET p_board = REPLACE(REPLACE(REPLACE(p_board, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')

你能把不起作用的查询包括进来吗?这可能会帮助我们解决这个问题…从来没有空格能做到这一点。也许能为我们多做一点吗?你能给我们一个完整的脚本来重现这个问题:创建表、插入和选择失败。我想你把表名搞错了或者什么的。啊!我在13秒前就失去了第一名!是的,不是这就是我看到的。删除第二个空格,我打赌查询会成功。抱歉,伙计们,这不是实际的查询,所以code snipplet很奇怪,在第二个到最后一个学期之前只有一个空格!修复了查询snipplet该查询实际上在最后一个学期之前有一个空格,仍然返回空白结果我已经去掉了所有的空格,并且它仍然返回空白,我的p_解决方案是varchar(max)不要对这样的列使用varchar(max)。你会建议varchar(89)吗?我实际上会建议char(89),因为它们都是一样的。选择varchar(89)没有任何节约。它们没有变化。这可能是某种类型的隐式类型转换吗?也许您的81位字符串被解释为一个数字?(只是猜测一下)。我几乎要责怪godaddy糟糕的sql server了。::Cade给我的查询似乎并没有取代空格
UPDATE sudoktion_puzzles
SET p_board = REPLACE(REPLACE(REPLACE(p_board, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')