news 2026/6/13 10:38:39

一个用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/6/5 10:26:33

Product Hunt新品发布:让海外用户认识lora-scripts

让海外用户认识 lora-scripts:一款让 LoRA 微调真正“开箱即用”的自动化工具 在生成式 AI 的浪潮中,个性化模型定制不再是实验室里的奢侈操作。越来越多的创作者、开发者和中小企业开始尝试训练属于自己的风格化图像模型或垂直领域语言模型。然而&#…

作者头像 李华
网站建设 2026/6/10 0:13:46

搜狗微信搜索优化:提高公众号文章排名

搜狗微信搜索优化:提高公众号文章排名 在今天的数字内容战场中,一篇公众号文章能否被用户“看见”,往往比它写得是否精彩更重要。尤其是在搜狗微信搜索这个封闭却极具价值的生态里,成千上万的内容争夺有限的曝光位,而算…

作者头像 李华
网站建设 2026/5/31 14:12:54

qt c++ 二维绘图的类都有什么

1.qt c 二维绘图的类都有什么 在 Qt C 中,二维绘图主要通过 Qt 的 2D 图形绘制系统(Qt Painting System) 实现。该系统提供了一套丰富的类用于在窗口、图像或打印机等设备上进行 2D 绘图。以下是常用的与二维绘图相关的核心类: &…

作者头像 李华
网站建设 2026/6/7 8:51:45

qt c++ 二维图形绘图的类都有什么

在 Qt C 中,用于二维图形绘图的核心类主要集中在 Qt GUI 模块(特别是 QtWidgets 和 QtGui)中。以下是常用的一些二维图形绘图相关类及其用途:1. QPainter核心绘图类,用于在各种设备(如窗口、图像、打印机等…

作者头像 李华
网站建设 2026/6/13 8:34:07

揭秘Java内置抗量子加密模块:你不知道的Bouncy Castle黑科技

第一章:Java抗量子加密技术概述随着量子计算的快速发展,传统公钥加密体系(如RSA、ECC)面临被高效破解的风险。抗量子加密(Post-Quantum Cryptography, PQC)旨在设计能够抵抗经典和量子计算机攻击的新型密码…

作者头像 李华
网站建设 2026/6/10 19:52:12

华为云对象存储OBS托管lora-scripts静态资源

华为云对象存储OBS托管lora-scripts静态资源 在AI模型定制日益普及的今天,LoRA(Low-Rank Adaptation)因其高效、低显存消耗的微调能力,已成为图像生成与大语言模型个性化训练的主流选择。但随之而来的问题是:如何管理分…

作者头像 李华