news 2026/4/16 0:34:16

一个用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/4/16 12:17:03

快速上手ARM Cortex-M ISR配置:新手入门步骤

从零开始掌握ARM Cortex-M中断系统:新手也能看懂的实战指南你有没有遇到过这样的场景?单片机在跑主循环,突然一个按键被按下、一帧UART数据到达,或者定时器溢出——这些事件来得毫无预兆,但系统必须立刻响应。如果靠“…

作者头像 李华
网站建设 2026/4/16 12:58:17

教育领域专属问答机器人:借助lora-scripts训练垂直领域LLM模型

教育领域专属问答机器人:借助lora-scripts训练垂直领域LLM模型 在高中物理教研组的办公室里,一位老师正为如何快速响应学生反复提问“匀变速运动怎么算时间”而发愁。这类问题虽基础,却占据了大量答疑时间。如果能让AI学会用标准解题步骤作答…

作者头像 李华
网站建设 2026/4/16 12:17:02

lora-scripts中文文档建设进展:本地化翻译志愿者招募

LoRA 训练自动化新范式:lora-scripts 中文文档共建启动 在生成式 AI 流行的今天,越来越多开发者希望基于 Stable Diffusion 或大语言模型(LLM)定制专属能力——无论是打造个人艺术风格、训练行业知识问答机器人,还是为…

作者头像 李华
网站建设 2026/4/16 11:01:01

从G1到ZGC的平滑迁移指南:避免内存爆炸的7个关键步骤

第一章:ZGC内存管理优化的核心价值ZGC(Z Garbage Collector)是JDK 11中引入的低延迟垃圾收集器,专为处理超大堆内存(TB级)和极短停顿时间(小于10ms)而设计。其核心价值在于通过着色指…

作者头像 李华
网站建设 2026/4/16 11:00:24

screen+ 基础命令配置:小白也能懂的操作指南

用好screen,告别断连焦虑:工程师的终端守护神你有没有过这样的经历?深夜调试服务器上的数据采集脚本,眼看着进度条走到90%,突然Wi-Fi抽风、SSH断开——再连上去时,进程早已消失无踪。或者在远程烧录嵌入式设…

作者头像 李华
网站建设 2026/4/15 20:19:27

七牛云CDN加速lora-scripts网站图片与视频加载

七牛云CDN加速lora-scripts网站图片与视频加载 在AI生成内容(AIGC)快速普及的今天,越来越多开发者希望通过LoRA技术对Stable Diffusion或大语言模型进行个性化微调。而像lora-scripts这样的自动化训练工具,正让这一过程变得前所未…

作者头像 李华