news 2026/4/26 0:08:15

一个用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/22 22:25:33

lora-scripts实战教程:从数据预处理到生成赛博朋克风图像全流程

LoRA实战指南:用lora-scripts打造专属赛博朋克视觉风格 在AI生成内容爆发的今天,我们早已不再满足于“画出一只猫”这种基础能力。设计师想要的是能稳定输出特定艺术风格的作品——比如充满霓虹光影、机械义体与雨夜街道的赛博朋克城市景观;…

作者头像 李华
网站建设 2026/4/24 8:55:38

ZGC vs Shenandoah:谁才是超大堆内存管理的王者?(深度对比评测)

第一章:ZGC内存管理优化的演进与核心理念ZGC(Z Garbage Collector)是Java平台中面向低延迟场景设计的高性能垃圾回收器,自JDK 11引入以来,持续在大内存、低停顿的应用场景中展现优势。其核心目标是在处理TB级堆内存时仍…

作者头像 李华
网站建设 2026/4/25 10:53:50

百度网盘资源分享:国内用户快速获取lora-scripts模型

百度网盘资源分享:国内用户快速获取lora-scripts模型 在AIGC(生成式人工智能)热潮席卷各行各业的今天,越来越多的开发者和创作者希望基于现有大模型训练出具备个性化风格或专业能力的定制化AI。然而,动辄数十GB的模型参…

作者头像 李华
网站建设 2026/4/24 6:24:06

基于lora-scripts的图文生成定制化解决方案——风格、人物、场景全覆盖

基于 lora-scripts 的图文生成定制化解决方案:风格、人物、场景全覆盖 在内容创作日益个性化的今天,AI 生成模型早已不再是“随便出图”的玩具。无论是独立艺术家希望打造专属画风,还是品牌方需要统一视觉语言输出广告素材,亦或是…

作者头像 李华
网站建设 2026/4/25 23:29:49

利用硬件USART模块实现奇偶校验:项目应用示例

硬件USART奇偶校验实战:从原理到工业级抗干扰设计你有没有遇到过这样的情况:系统运行得好好的,突然一条控制指令发错,设备莫名其妙重启,或者传感器读数跳变成百上千?查遍代码逻辑都没问题,最后发…

作者头像 李华
网站建设 2026/4/25 22:21:22

为什么顶尖团队都在用飞算JavaAI生成配置?这4个优势太致命

第一章:飞算JavaAI核心配置生成概述 飞算JavaAI是一款面向企业级Java开发的智能化辅助工具,其核心能力之一是自动生成高质量、可运行的Java项目配置。该功能基于项目需求描述与技术栈偏好,结合AI模型理解上下文语义,动态生成符合规…

作者头像 李华