news 2026/9/9 19:48:09

一个用SQL Sever求解数独的SQL

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一个用SQL Sever求解数独的SQL

分别从 文章1 https://axial-sql.com/info/exploring-sql-server-solving-sudoku-with-t-sql/ 和文章2 https://www.sqlservercentral.com/blogs/tsql-sudoku-ii-2 看到的代码和解释,思路还是穷举法。然后经过删减,终于能执行出来了,注释掉了不懂要怎么修改的部分,需要进一步研究。

WITHx(s,ind)AS(SELECTCONVERT(VARCHAR(100),'53 7 6 195 98 6 8 6 34 8 3 17 2 6 6 28 419 5 8 79'),CHARINDEX(' ','53 7 6 195 98 6 8 6 34 8 3 17 2 6 6 28 419 5 8 79')ASindUNIONALLSELECTCONVERT(VARCHAR(100),SUBSTRING(s,1,ind-1)+CONVERT(CHAR(1),z)+SUBSTRING(s,ind+1,81)),CHARINDEX(' ',s,ind+1)ASindFROMxCROSSAPPLY(VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9))z(z)WHEREind>0ANDNOTEXISTS(SELECTNULLFROM(VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9))ww(lp)WHEREz=SUBSTRING(s,(ind-1)%9-8+lp*9,1)ORz=SUBSTRING(s,((ind-1)/9)*9+lp,1)ORz=SUBSTRING(s,(((ind-1)/3)%3)*3+(((ind-1)/27)*27)+lp+(((lp-1)/3)*6),1))),SudAS(SELECTTOP9SUBSTRING(s,ROW_NUMBER()OVER(ORDERBYs)*9-8,ROW_NUMBER()OVER(ORDERBYs)*9-(ROW_NUMBER()OVER(ORDERBYs)*9-9))ASConcatRowFROMxCROSSAPPLY(VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9))y(N)WHEREind=0),SudTable(RowCol,ConcatRow)as(SelectRow_Number()Over(Orderby(Select1)),CONVERT(VARCHAR(10),ConcatRow)FromSud)select*fromSudTable;/* SELECT c1.RowCol , [1], [2], [3], [4], [5], [6], [7], [8], [9] FROM ( SELECT S.RowCol, ROW_NUMBER() OVER (PARTITION BY RowCol ORDER BY ConcatRow) as ColNo , SUBSTRING(ConcatRow, ROW_NUMBER() OVER (PARTITION BY S.RowCol ORDER BY ConcatRow), 1) as Data FROM SudTable S CROSS APPLY ( VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9)) x(N) ) Intr PIVOT ( MAX(Data) FOR ColNo IN ([1], [2], [3], [4], [5], [6], [7], [8], [9]) ) AS C1 WHERE c1.RowCol = S.RowCol ORDER BY S.RowCol ASC */;go

输出结果

mssql@52f277ddc992:/$ /opt/mssql-tools18/bin/sqlcmd -S localhost -U sa -No -i /par/tsqlsudoku.txt -P Pass_123 RowCol ConcatRow -------------------- ---------- 1 534678912 2 672195348 3 198342567 4 859761423 5 426853791 6 713924856 7 961537284 8 287419635 9 345286179 (9 rows affected)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 2:55:38

一文说清STLink驱动安装全过程(适合初学者)

手把手教你搞定 STLink 驱动安装:从踩坑到精通(初学者友好版) 你是不是刚买了块 STM32 开发板,兴冲冲地插上电脑,结果发现—— 设备管理器里多了一个带黄色感叹号的“未知设备”? 别慌,这几…

作者头像 李华
网站建设 2026/9/3 0:42:43

Markdown写文档更方便:记录lora-scripts训练实验日志

lora-scripts 训练实践:用 Markdown 管理 LoRA 实验日志 在 AIGC 浪潮席卷各行各业的今天,越来越多开发者和创意工作者希望拥有“属于自己的 AI 模型”——无论是复刻个人画风、打造品牌视觉 IP,还是让大模型掌握特定领域的专业知识。但现实是…

作者头像 李华
网站建设 2026/9/7 21:38:17

又拍云是否支持lora-scripts资源分发?合作可能性探讨

又拍云是否支持lora-scripts资源分发?合作可能性探讨 在生成式AI迅速“破圈”的今天,越来越多的个人创作者和小型团队开始尝试训练专属的LoRA模型——无论是打造独特的艺术风格,还是为垂直行业定制语言能力。而随着这类轻量化微调需求的增长&…

作者头像 李华
网站建设 2026/9/8 14:09:46

Quarkus 2.0物联网集成实战(从设备接入到云原生部署大揭秘)

第一章:Quarkus 2.0物联网集成概述Quarkus 2.0 作为一款专为云原生和 GraalVM 优化的 Java 框架,显著提升了在资源受限环境中运行微服务的能力,尤其适用于物联网(IoT)场景下的边缘计算与设备协同。其快速启动时间和低内…

作者头像 李华
网站建设 2026/9/2 5:52:37

企业微信集成lora-scripts审批流程自动化

企业微信集成lora-scripts审批流程自动化 在企业日常运营中,审批流程往往伴随着大量重复性、规则明确但又依赖人工判断的任务:市场部提交的设计稿是否符合品牌视觉规范?法务收到的合同里有没有遗漏关键条款?客服回复客户时语气是否…

作者头像 李华