今天早上写了一个存储过程,如下

DECLARE packway_cursor CURSOR FOR
select Distinct  by00902 from sdby009 where by00901 in(
select  by02108 from sdby021 where by02118=@by02118)
OPEN packway_cursor
FETCH NEXT FROM packway_cursor
INTO @PackWay
while(@@fetch_status=0)    
begin 
   set @PackMeanId =@PackMeanId + @PackWay
  fetch next from packway_cursor into @PackWay
  if(@@fetch_status=0)
  begin
   set @PackMeanId = @PackMeanId + '/'
  end
end

close packway_cursor      
deallocate packway_cursor
select @PackMeanId

问题是无论有没有记录存在@PackMeanId 都为null,不知道原因是什么,而我将他改为如下

DECLARE packway_cursor CURSOR FOR
select Distinct  by00902 from sdby009 where by00901 in(
select  by02108 from sdby021 where by02118=@by02118)
OPEN packway_cursor
FETCH NEXT FROM packway_cursor
INTO @PackWay
set @PackMeanId = ''
while(@@fetch_status=0)    
begin 
   set @PackMeanId =@PackMeanId + @PackWay
  fetch next from packway_cursor into @PackWay
  if(@@fetch_status=0)
  begin
   set @PackMeanId = @PackMeanId + '/'
  end
end

close packway_cursor      
deallocate packway_cursor
select @PackMeanId

红色的为后来加的,这样就能得到正确的答案的,原因何在呢,难道是定义的@PackMeanId,没有给他赋值,他为null,然后 set @PackMeanId =@PackMeanId + @PackWay就一直为null吗?不明?

转载于:https://www.cnblogs.com/lovefeel2004/archive/2008/10/14/1310686.html

关于sql中字符串的疑惑相关推荐

  1. leetcode 1667 sql中字符串处理函数

    题目要求使用select查询,也不用改了(一般在hive上也不改). 此题主要考差了sql的一些字符串函数,比如upper,lower,left(取左边的子串,输入位置),substring(取右边的 ...

  2. SQL中字符串截取函数(SUBSTRING)

    1.left(name,4)截取左边的4个字符 列: SELECT LEFT(201809,4) 年 结果:2018 2.right(name,2)截取右边的2个字符 SELECT RIGHT(201 ...

  3. SQL中字符串截取函数

    1.left(name,4)截取左边的4个字符 列: SELECT LEFT(201809,4) 年 结果:2018 2.right(name,2)截取右边的2个字符 SELECT RIGHT(201 ...

  4. SQL中字符串截取函数(left、SUBSTRING)

  5. 含有参数的sql拼接_深入讲解SQL中的字符串拼接

    一.概述 相信大家在日常开发中,在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select ' ...

  6. java sql拼接字符串_SQL中字符串拼接

    1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...

  7. SQL中的行转列和列转行

    导读 SQL是IT行业很多岗位都要求具备的一项能力,对于数据岗位而言更是如此,甚至说扎实的SQL基础也往往是入职这些岗位的必备技能.而在SQL面试中,一道出镜频率很高的题目就是行转列和列转行的问题,可 ...

  8. oracle sql字符拆分字符串函数,oracle-是否有在PL / SQL中拆分字符串的功能?

    oracle-是否有在PL / SQL中拆分字符串的功能? 我需要编写一个过程来规范具有由一个字符连接的多个令牌的记录. 我需要获得这些令牌来分割字符串,并将每个令牌作为新记录插入表中. Oracle ...

  9. sql 解析字符串添加到临时表中 sql存储过程in 参数输入

    sql 解析字符串添加到临时表中  sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表   FROM dbo.Func_SplitOneCol ...

最新文章

  1. 使用netstat检测及监测网络连接
  2. 关于Apache不能解析html内容
  3. springmvc怎么解析post_秋招跳槽,面试是拦路虎?【spring、springMVC】- 常见面试题汇总...
  4. php 去掉数组中的空值_PHP删除数组中空值的方法介绍
  5. 主成分分析具体解释_主成分分析-现在用您自己的术语解释
  6. Visual Studio的未来特性展望
  7. 中国大学MOOC-数据结构基础习题集、06-3、公路村村通
  8. 【Oracle】Oracle GoldenGate简介及搭建过程
  9. 【最强宝典】后端面试知识点合集
  10. 斐讯k1潘多拉专版固件_斐讯K1、K2路由器刷机Breed/华硕老毛子、梅林、潘多拉/openwrt固件...
  11. 计算机中我的云文档在哪儿里,wps云文档可以删除吗在哪里删除
  12. 腾云忆想技术干货|TSF微服务治理实战系列(三)——服务限流
  13. 软件工程师待遇怎么样?软件工程师薪水到底有多高?
  14. Longhorn配置参数详解
  15. 微信公众号消息text换行问题
  16. 当贝F5和坚果J10S色彩实拍对比,终究是徕卡错付了
  17. “1只老母鸡”估值180亿!老乡鸡发展20年,都做对了什么?
  18. java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String,toArray向下转型失败
  19. shiro最简洁的权限管理(菜单)控制
  20. kubectl全部命令用法示例

热门文章

  1. Pandas DataFrame loc []访问一组行和列
  2. Java属性文件– java.util.Properties
  3. 设备驱动简介 -- ldd3读书笔记
  4. C++基础new和delete运算符,new和delete简介
  5. Java基础:把对象作为参数
  6. python中的itemgetter函数
  7. 快速学懂pandas
  8. 第114天:Ajax跨域请求解决方法(二)
  9. Java8 in action(1) 通过行为参数化传递代码--lambda代替策略模式
  10. EasyUI-在iframe里获取现阶段选中的tab的标题