一个常见Sql问题的解决

sql常见错误 在安装和调试数据库的时候难免要出错,你可以阅读本文件来提高你解决数据库安装和调试的能力 立即下载

一个常见Sql问题的解决

 

很多时候我们都需要实现如下的功能:

 

表TableM

结构如下:

数据如下:

表TableD

         结构如下:


数据如下:

        

需要实现的功能如下:

     

具体的就不说了,大家仔细看了这几张图就知道实现什么了^-^

 

实现起来最直接方法就是用游标了,而且是嵌套游标,这个当然效率相当低了,不过随后会给出更好的实现方法^-^

 

这个方法需要建立一个临时表TableResult,它只有一个字段AllStr!!

 

SQL代码如下:

--方法一:嵌套游标

--表名            字段名

--TableD        AStr        BStr    CStr
--
TableM        AStr        BStr    
--
TableResult        AllStr

--符合条件的数据放到表TheSameRecord
Select     TableD.AStr,TableD.BStr,TableD.CStr 
Into     TheSameRecord 
From     TableM,TableD 
Where     TableM.AStr = TableD.AStr And TableM.BStr = TableD.BStr

Declare @AStr VarChar(50)
Declare @BStr VarChar(50)
Declare @CStr VarChar(50)

Declare @AllCStr VarChar(500)
Set @AllCStr = ''

Declare @iNext Bit
Set @iNext = 0


--外层游标
Declare Outer_Cursor Cursor For 
Select Distinct AStr,BStr From TheSameRecord

Open Outer_Cursor

Fetch Next From Outer_Cursor Into @AStr, @BStr

While @@Fetch_Status = 0
Begin
    
--内层游标
    Declare Inner_Cursor Cursor For 
    
Select CStr From TheSameRecord Where AStr = @AStr And BStr = @BStr
    
    
Set @AllCStr = ''
    
    
Open Inner_Cursor
    
    
Fetch Next From Inner_Cursor Into @CStr
    
While @@Fetch_Status = 0
    
Begin
        
Set @AllCStr = @AllCStr + @CStr + ','
        
Fetch Next From Inner_Cursor Into @CStr
    
End

    
if (@iNext = 0)
    
Begin
        
Delete TableResult
        
Set @iNext = 1
    
End

    
Insert Into TableResult (AllStr) Values (SubString( @AllCStr,1, Len(@AllCStr)-1))
    
    
Print SubString( @AllCStr,1, Len(@AllCStr)-1 )

    
Close         Inner_Cursor
    
DealLocate     Inner_Cursor

    
Fetch Next From Outer_Cursor Into @AStr, @BStr
End
Close         Outer_Cursor
DealLocate     Outer_Cursor


--删除表TheSameRecord
Drop Table TheSameRecord

Select * From TableResult

结果如下:

 

但是马上又想到了另外一种方法实现,因为函数本身就可以对数据进行循环,那么如果用函数来实现的话,
一则效率高,
二则代码量少
 
那么就有如下实现了:
--方法二:函数
Create Function AddStr(@AStr VarChar(50), @BStr VarChar(50))
Returns VarChar(8000)
As
Begin
    
Declare @ALLStr Varchar(8000)
    
Set @ALLStr=''

    
Select @ALLStr = @ALLStr + ',' + Cast(CStr As VarChar) From TheSameRecord 
    
Where AStr  = @AStr And BStr = @BStr

    
Set @ALLStr = Right(@ALLStr,Len(@ALLStr)-1)
    
Return(@ALLStr)
End

Go

Select     TableD.AStr,TableD.BStr,TableD.CStr 
Into     TheSameRecord 
From     TableM,TableD 
Where     TableM.AStr = TableD.AStr And TableM.BStr = TableD.BStr

Go

Select Distinct AStr,BStr,dbo.AddStr(AStr,BStr) As AllStr From TheSameRecord

Drop Table TheSameRecord

结果如下:

SQL十大常见错误 SQL十大常见错误,里面讲解了SQL常见的十大错误。 立即下载

相关推荐

告别零散脚本:用Playwright+Pytest+Yaml+Allure搭建可维护的UI自动化项目

UI自动化测试是软件质量保障的关键环节,其核心在于模拟用户操作,对Web应用界面进行功能验证。传统的脚本堆砌方式常因代码耦合度高、维护成本大而难以为继。工程化解决方案通过分离关注点,将测试逻辑、数据和配置解耦,从而显著提升项目的可读性、可维护性和可扩展性。其技术价值在于构建可持续运行的自动化资产,而非一次性脚本。典型的应用场景包括Web应用的回归测试、兼容性测试及CI/CD流水线中的质量门禁。本文以Playwright、Pytest、Yaml和Allure为核心技术栈,详细阐述了如何从项目架构、页面对象模型

weixin_42529328的博客 302

sql常见报错问题集锦(持续更新)

汇总在工作中遇到的各种sql问题。 bad SQL Grammar:SQLexception is java.sql.SQLException: No value specified for parameter 3 问题描述 报错信息 bad SQL grammar [ update station set reserve2 = ? ,status = ? , phone = (case when dest_phone is null or phone = '' then ? else phone end)

weixin_42246822的博客 2026

内网CentOS离线部署LibreOffice:从依赖缺失到服务启动的完整避坑指南

本文详细介绍了在CentOS内网环境中离线部署LibreOffice的完整流程,包括依赖包准备、安装顺序优化及常见报错解决方案。针对金融等封闭网络场景,提供从rpm包选择到服务启动的全套避坑指南,特别解决libXinerama等图形库缺失问题,确保文档转换服务稳定运行。

weixin_33416697的博客 246

SQL bug

现象:该字段数据库中为bigint类型,实体类中是用Integer承接数据的,但是报错显示该字段用Integer类型承接数据,超出了该类型的范围。 解决方式:换用Long类型接收数据即可

FDX0821的博客 710

Java开发者必备:Ollama4j客户端库全面指南与实战

在AI应用开发领域,本地部署大型语言模型(LLM)已成为降低成本和提升隐私安全的重要趋势。其核心原理是通过REST API与模型服务器交互,实现文本生成、对话和语义理解等功能。这一技术为Java生态系统带来了显著的工程价值,使开发者能够便捷地将AI能力集成到企业级应用中。Ollama4j作为一款专为Java设计的轻量级客户端库,通过封装底层HTTP通信和JSON处理,提供了类型安全、面向对象的API,极大地简化了与Ollama服务器的交互。它全面支持流式生成、多轮对话、嵌入向量计算以及高级的**工具调用**

weixin_28295799的博客 438

CKAD-CN 考试知识点分享(2) CronJob

成功创建 CronJobppi,每 5 分钟执行一次计算任务;配置了和;设置,超时自动终止;确保 Pod 不重启;手动创建ppi-testJob 验证功能正常;所有任务要求均已满足。

轻的博客 333

周四见|《SQL开发中容易被忽略的BUG》by郑老师

周四见   免费公开课系列We,知数堂习惯用实力介绍自己—我们只分享干货重磅福利来袭2018年4月19日,20:30-21:30 周四见不见不散主讲嘉宾郑老师知数堂《SQ...

老叶茶馆 525

工程伦理ppt

工程伦理学 第一章 工程与伦理 1.1 如何理解工程 一、技术与工程的区别 二、技术与工程的联系 三、工程的定义 五、工程具有不确定性和探索性 六、理解工程活动的7个维度 1.2 如何理解伦理 一、道德与伦理 二、不同的伦理立场 三、伦理困境与伦理选择 1.3 工程实践中的伦理问题 一、工程活动中的行动者网络(具有动态性和网络性) 二、主要的工程伦理问题 三、工程伦理问题的特点 1.4 如何处理工程实践中的伦理问题 一、工程实践中伦理问题的辨识 二、处理工程伦理问题的基本原则 三、应对工程伦理问题的基本思路

weixin_51656605的博客 7万+

jquery实现验证输入数字

验证输入的是否是数字,代码: [code="java"] input $(document).ready(function(){ $('#error').hide(); $('#submit').click(function(event){ var data = $('#userId').val(); data = $.trim(da...

fenglei12的博客 388

S32DS新建工程、编译调试下载、导入工程详细介绍

新建了一个工程之后,下面简单介绍下基本的UI界面。其中最左下角那个是界面,这个界面很重要,是图形化配置界面,然后可以根据这些配置自动生成代码。其中,左边那些配置文件,都是系统帮我们创建好了的,我们其实可以直接用就行。有PE工具的调试,以及Jlink工具的调试。我目前使用到PE工具调试可以查看寄存器值,而Jlink调试查看不了寄存器值。连接了开发板之后,点击Debug就可以吧程序下载到芯片上了,而且可以进入到调试界面。

luobeihai的博客 2万+

robosuite 入门教程(一)安装与基本用法

摘要:Robosuite是基于MuJoCo的模块化机器人仿真框架,提供标准化基准测试环境和多样化机器人控制功能。作为ARISE计划的一部分,该框架支持强化学习、模仿学习等算法研究,包含程序化环境生成、多模态传感器、多种控制器及遥操作设备。支持macOS/Linux系统,提供详细安装指南和功能演示脚本,包括随机动作测试、控制器验证、域随机化等。最新版本v1.5新增人形机器人支持、全身控制器和照片级渲染功能,旨在降低机器人学习研究门槛,促进算法开发与评估。

2506_90492529的博客 1271

jquery 验证小数点后几位_利用jquery实现验证输入的是否是数字、小数,包含保留几位小数...

1、验证方法 validationNumber(e, num) e代表标签对象,num代表保留小数位数function validationNumber(e, num) {var regu = /^[0-9]+\.?[0-9]*$/;if (e.value != "") {if (!regu.test(e.value)) {alert("请输入正确的数字");e.value = e.value....

weixin_39644139的博客 684

ApolloScape 数据集:YOLOv10 + UI界面实现与应用

是由百度Apollo团队发布的一个大规模自动驾驶数据集,涵盖了车辆、行人、骑行者等多种交通元素,旨在为自动驾驶技术的发展提供丰富的数据支持。数据集包含多种复杂的场景,例如城市道路、交叉口、车辆聚集等,能够帮助研究人员和开发者在多种现实环境下测试和验证目标检测模型。YOLO(You Only Look Once)系列算法是目前最流行的目标检测算法之一,因其高效、准确以及实时性强的特点被广泛应用于计算机视觉领域。YOLOv10是YOLO系列中的最新版本,在性能和效率上进行了多方面的优化。速度快。

YOLO 933

限制输入框只能输入数字(JQuery插件)

/** * 限制输入框只能输入数字(JQuery插件) * * @author Johnson * * @example $("#amount").numeral() * * @example $("#amount").numeral(4) or $("#amount").numeral({'scale': 4}) * * @example $(".x-amount").num

灵魂在奔跑 8515

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

编写Jquery的plugin

源地址:http://justcoding.iteye.com/blog/728455 如何写一个Jquery 的Plugin插件 博客分类:  Javascript /Jquery / Bootstrap / Web jQuery配置管理脚本FirebugJavaScript  JQuery Plugin插件,如果大家不明白什么是JQuery

NotBack的编程专栏 923

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jquery正则表达式验证:验证数字为十二位

需求说明:   前端页面使用正则表达式验证输入的数据为十二位数字。 代码说明:   这里只介绍正则表达式,其他部分的代码不做介绍。如果有其他需要自行修改即可。 步骤一:建立一个页面可以是html、jsp等,引入jquery-3.2.1.min.js(其他版本亦可)。 步骤二:编写正则表达式。 代码部分如下: <!DOCTYPE html> <html lang...

weixin_30559481的博客 860

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

移动端四格验证码实现

移动端四格验证码实现 页面代码如下,需引入jq, **用法:**直接复制到页面即可用 <style> .container{ width: 84%; /* height: 150pt; */ margin: 0 auto; } .val-box{ displ...

Mr_heber的博客 645

Jquery 验证数字

<script type="text/javascript"> $(document).ready(function () { $("#error").hide(); $("#txtStuAge").keyup(function () { var $val = $("#txtSt...

bao5359的博客 264

jquery价格输入的表单验证怎么做

我最近在做项目时,有人问我怎么写价格输入框的表单验证,不会正则表达式,我的思路其实很简单,其实你无需会正则表达式,你只需知道正则表达式是干什么用得即可,下面我将介绍其做法,基本上照抄我的代码即可,因为价格的表单验证无非就是你输入是数字不是其他什么字母,如果要输入其他什么字母,你可以百度搜索一下,这种正则表达式的表示是什么样子拿过来用即可。 工具/原料 jqu

baidu_36681154的博客 753

简单的表单弹窗验证(遍历、文本、数字号码、身份证、单选、多选、下拉框)

现在可使用的验证不为空:遍历(使用同一个class遍历遇到为空时则停止遍历并弹窗提示)、文本、数字号码、身份证、单选、多选、下拉框 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>弹窗效果表单验证</title> <script type=...

qq_26173001的博客 559

Jquery验证输入框只能输入数字

Jquery验证输入框只能输入数字 <script> $("#edit-attr-Subtitle").keyup(function(){ this.value=this.value.replace(/[^0-9]/i,""); } ); </script> 转载于:https://www.cnblogs.com/derrck/a...

weixin_30760895的博客 151

jquery 判断是否为数字

【代码】jquery 判断是否为数字。

努力搬砖的小码 374

jquery 文本框只能输入数字 兼容IE、火狐

网页文本框只能输入数字的js

享綬洎甴 1361
上一篇: GridView/DataGrid导出成Excel文件的万能解决方法
下一篇: 什么是优秀的程序员?
SysBug
博客等级 码龄22年 3粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值