Oracle中如何把查询结果用|分隔

在Oracle中,一个查询语句,是一个多表联合查询,有多个字段,复杂的别名,需要用‘|’|将每一个字段进行分隔,这样查询出来的结果方便解析。

5个回答

没看懂你问的什么

deng510824
deng510824 假如是select a,b,c from d .现在要的查询结果为a|b|c.
2 年多之前 回复

假如是select a,b,c from d .现在要的查询结果为a|b|c.

select a||'|'||b||'|'||c from d

strutce
丵鹰 回复deng510824: select a||'|'||b||'|'||c as "a1|b1|c1" from d 这样不就可以了吗
2 年多之前 回复
strutce
丵鹰 回复deng510824: select a||'|'||b||'|'||c 别名也拼接啊 from d
2 年多之前 回复
deng510824
deng510824 含有别名怎么拼接
2 年多之前 回复
deng510824
deng510824 不得行,用过了
2 年多之前 回复

select aac001||'|'||aac002 from ac01;

deng510824
deng510824 还有别名无法用
2 年多之前 回复

别名的化,先写一个正常的sql, 直接把别名的查出来。然后 把这个sql括号括起来,定义为m 然后外面套一层
就比如select m.a||'|'||m.b from (select aac001 a,aab001 b from ac01) m;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
oracle 分隔函数语句问题
![图片说明](https://img-ask.csdn.net/upload/201708/11/1502435120_483061.png) ![图片说明](https://img-ask.csdn.net/upload/201708/11/1502435129_142421.png) ![图片说明](https://img-ask.csdn.net/upload/201708/11/1502435135_755506.png) 这个分隔函数是网上找来的,我要查询任务表(任务表存着多个抽查事项的id,逗号分隔的),要把任务表的抽查事项id,换成抽查事项表的中文名称展示出来,图三我不知道怎么修改了,提示子查询返回多个结果,希望老哥们教教我
ORACLE如何按以下要求返回查询结果?
--需求说明: 表T中有一列NUMBER类型字段NO,要求用SELECT语句实现返回结果: 1-5,10,20-22,24 规则如下: 1、从小到大,公差为1的等差数列以首尾数字使用'首--尾'格式拼接返回。 2、如果数列中间有间隔数字,则该数字作为结果返回。 3、各结果用","分隔。 ``` CREATE TABLE t(NO NUMBER); INSERT INTO t VALUES(1); INSERT INTO t VALUES(2); INSERT INTO t VALUES(3); INSERT INTO t VALUES(4); INSERT INTO t VALUES(5); INSERT INTO t VALUES(10); INSERT INTO t VALUES(20); INSERT INTO t VALUES(21); INSERT INTO t VALUES(22); INSERT INTO t VALUES(24); COMMIT; SELECT * FROM t; ```
oracle查询计划信息,如何分隔关联查询?
现要查询计划表信息,和组织权限相关联,目前sql T_TRAIN_PLAN 表结构 ![图片说明](https://img-ask.csdn.net/upload/201807/03/1530609482_412938.png) ![图片说明](https://img-ask.csdn.net/upload/201807/03/1530610117_758277.png) t_employee_organization_ref表结构 ![图片说明](https://img-ask.csdn.net/upload/201807/03/1530609493_925040.png) ![图片说明](https://img-ask.csdn.net/upload/201807/03/1530610033_945027.png) ``` select * from (select distinct t.plan_name, t.plan_code, t.begin_date, t.end_date, t.id, t.status, t.verify, t.isDel, ROWNUM RN from (select t.plan_name, t.plan_code, t.begin_date, t.end_date, t.id, t.status, t.verify, row_number() over(order by create_time desc) as seqnum, (select count(1) from t_train_session ts where ts.plan_id = t.id and ts.train_begin_time < sysdate) isDel FROM (SELECT * FROM (SELECT t.store_id, t.plan_name, t.plan_code, t.begin_date, t.end_date, t.id, t.status, t.verify, create_time, t.remark mark FROM T_TRAIN_PLAN t where t.status in ('0', '2') and t.remark is not null ) t, t_employee_organization_ref a where t.store_id = a.unit_id and a.employee_code = 'admin') t) t where seqnum <=10 order by t.begin_date desc) where rn > 0; 抽取主体也就是 SELECT * FROM (SELECT t.store_id, t.plan_name, t.plan_code, t.begin_date, t.end_date, t.id, t.status, t.verify, create_time, t.remark mark FROM T_TRAIN_PLAN t where t.status in ('0', '2') and t.remark is not null ) t, t_employee_organization_ref a where t.store_id = a.unit_id and a.employee_code = 'admin' ``` 目前的业务是,当创建计划时,Store_id可以选择多个, 保存的时候,如果store_id是多个,则保存在了remark字段中,如果只是一个保存在store_id字段中, 那么问题 来了,如果store_id是多个,已逗号分隔的形式保存在了remark字段中,我怎么和t_employee_organization_ref 组织权限表关联啊? 并且查找出计划信息。。。
oracle 以|分割的长字段拆分成多个(很多)字段
现在遇到一个表,有上千万条记录,只有一个字段,字段文本文字是以'|'分割的,一条记录200多个分隔符。我想把它拆分成多个字段,不是拆成多行,该怎么办?求大神指教一二,最好能给个脚本什么的。 如下: 201304|张三|0214||3547|336|aaa|2|01|.... 201304|李四|0244|23547|3315654|||01||||c||....
oracle,怎么查询一个字符串是否包含在一串以逗号分隔的字符串中
只用包含来查是不行的, 例如我有一串字符串是 '1,3,0bc4a2f79a3e4ac09582d9c50f779630,ffe02ba8ca724ebe98f2a5f0b56d84a0', 我希望能在我查找是否包含字符串时查找的是完全能在逗号分隔的字符串中找到对应, 例如我要找的是'1',它查找到里面有'1'返回true, 我要找的是'2',虽然长字符串里包含的有'2',但因为没有在逗号分隔的字符串中找到完全对应的,所以返回的是false 希望各位大佬能帮帮忙
sqlplus查询数据分隔符问题
需求:查询ORACLE数据写入TXT文件,列分隔符为^A(ASCII码为0x01);行分隔符为换行符(ASCII码0x0A),数据项中不能出现ASCII码为0x00-0x1F、0x7F的各类控制字符和非打印字符,若有则统一替换为空格符(ASCII码0x20) 使用shell脚本应该如何实现,以下脚本分隔符感觉不对,并且汉字后面会出现一大串空格,请大佬帮忙 ``` #!/bin/bash tablename=PLAN_PERIOD_TBL attributes=P,FULL_NAME,ABBR_NAME,DESCRIPTION BXJGJRXKZ='123456' sqlplus /@wallet_jihe <<EOF >/app/shell/jihe_test/datafile/TMP_$tablename set trimspool on set pages 0 set feed off set heading off set feedback off set verify off set linesize 1000 set colsep '^A' select $attributes,$BXJGJRXKZ from $tablename; EOF ``` ![表数据](https://img-ask.csdn.net/upload/201908/14/1565764666_135416.png) ![用以上脚本生成的数据](https://img-ask.csdn.net/upload/201908/14/1565764758_409418.png)
orcal中有多个字段,其中一个字段想要数据实现用逗号分隔开
请问在orcal中有多个字段,其中一个字段想要数据实现用逗号分隔开该如何实现?使用 select entity,listagg(RIGHT_TYPE,',') within group (order by entity) types from common_dataright_filed group by entity只能查询到两个字段!
数据库(oracle)sql问题
有这样的数据 被逗号分隔 怎么让他变为三条数据 oracle数据库
排名,rownum,Oracle查询
知道表t_img_code中数据总数totalCount,然后计算1%~99%所对应的排名数(rank(n)=n%*totalCount),查找排名所对应的costTime(表中另一个字段costTime), select * from (select rownum rn,t.costTime from (select t.costTime from tt_img_code t order by costTime) t) where rn in (…); 其中“…”为1%~99%分别对应的排名数,以“,”分隔,这怎么写
oracle中clob类型超长字符串如何截取与处理
各位大神,现在有一个表中有一个字段的类型是clob类型,里面存储了25w字符长度的数字,这些数字都是以逗号分割开的,我想把这个25w长度的字符串全部以逗号为分隔符,把里面的所有的数据都截取出来,再输入到数组中,不知道这个问题该怎么解决啊?求大神,谢谢。 另,我知道可以使用dbms-lob.substr截取,和instr()识别逗号的位置,数组我也已经自定义好了,可是由于varchar2的长度限制,每次只能截取32767长度的字符串,而且instr函数也是处理长度限制,我不知道能不能直接加大限制,直接进行截取,还是必须得分段截取,那该怎么分段呢? 实在不知道该怎么处理这个25w长度的大数据字符串了 <( ̄3 ̄)>
Java如何判断有乱码,是否有Oracle那种ASCIISTR那样的函数
现在有这么一个文件,文件中字符串用Tab键分隔 例如 aaa bbb cc 但是有时候 汉字和tab键合成了一个,成为了乱码 例如 电脑公?3楼 fff GGG 那个司和tab键合并成了乱码 修改源文件生成的方式肯定不可能,只能考虑读的时候做一些处理 例如 电脑公?3楼 fff 这行记录,我以tab键解析 那么结果 应当是 电脑公 3楼 fff 那个"司"字丢掉就算了,但是这条记录不能丢,请问用java怎么达到这个目标 Oracle中有个ASCIISTR可以来判断乱码,Java有类似的吗? 附加 Oracle判断方式 case when asciistr(subsname) like '%\FFFD%' THEN '乱码' else subsname end [b]问题补充:[/b] 在记事本打开就是 电脑公?3楼 fff GGG 这个样子,是第3方传过来就是这个样子.是在 AIX机器上看到的啊 另外在AIX机器上看到也是现在这个样子的啊 我们不可能要求第3方改啊
请教关于java读取DB2数据库导出 分组符GS 分隔.del文件问题
请教各位,我工程为oracle数据库,现在有 db2导出 按 分组符GS 分隔的.del文件, 需要用java读取,按行读取后,插入oracle数据库,split里应该填啥呀?? ArrayList list = WriteReadFile.readFileByLines("20181210.del"); for (int i=0;i<list.size();i++){ String[] a = list.get(i).toString().split(""); }
pl/sql文本导入器分隔符
txt是要导入的数据,文本导入器自动分析结果不是我想要的,正确应该以空格分隔,7列数据才对,请问如何设置![图片](https://img-ask.csdn.net/upload/201507/15/1436945678_900969.jpg)
把这个oracle存储转换成DB2储存过程,怎么转换。急!急!急!
--存储过程包 CREATE OR REPLACE PACKAGE Pkg_Deal_Data AS -- Author : liuchj@sunline.cn -- Created : 2016/4/1 21:07:57 -- Purpose : 会计流水数据整理 PROCEDURE Com_Main(Pi_Pckgdt IN VARCHAR2); --报文 END Pkg_Deal_Data; CREATE OR REPLACE PACKAGE BODY Pkg_Deal_Data IS PROCEDURE Deal_Data(Pi_Pckgdt IN VARCHAR2 --传入报文参数 ) IS i_Count INT; BEGIN --请将如下语句替换为生成gli_vchr的代码 i_Count := 1; --//结束 END Deal_Data; PROCEDURE Deal_Succ(Pi_Pckgdt IN VARCHAR2) IS --传入报文参数 BEGIN UPDATE Glo_Imdt g SET g.Status = '5' WHERE g.Bathid = pkg_pub.get_pkgstr('batchid', Pi_Pckgdt) AND stacid = pkg_pub.get_pkgstr('user_stacid', Pi_Pckgdt) AND plancd = pkg_pub.get_pkgstr('plancd', Pi_Pckgdt); commit; END Deal_Succ; PROCEDURE Deal_Error(Pi_Pckgdt IN VARCHAR2 --传入报文参数 ) IS BEGIN UPDATE Glo_Imdt g SET g.Status = '6' WHERE g.Bathid = pkg_pub.get_pkgstr('batchid', Pi_Pckgdt) AND stacid = pkg_pub.get_pkgstr('user_stacid', Pi_Pckgdt) AND plancd = pkg_pub.get_pkgstr('plancd', Pi_Pckgdt); commit; END Deal_Error; PROCEDURE Com_Main(Pi_Pckgdt IN VARCHAR2 --传入报文参数 ) IS BEGIN Deal_Data(Pi_Pckgdt); Deal_Succ(Pi_Pckgdt); EXCEPTION WHEN OTHERS THEN Deal_Error(Pi_Pckgdt); END Com_Main; END Pkg_Deal_Data; --函数包 CREATE OR REPLACE PACKAGE Pkg_Pub IS FUNCTION Get_Pkgstr(Pi_Fildna IN VARCHAR2, --字段名称 Pi_Pkgstr IN VARCHAR2) --报文字符串 RETURN VARCHAR2; --字段对应的值(如果是循环字段则返回第一个字段的值) END Pkg_Pub; CREATE OR REPLACE PACKAGE BODY Pkg_Pub IS c_Trans_Char CONSTANT VARCHAR2(1) := '\'; --转义字符 c_Level_Delimiter CONSTANT VARCHAR2(1) := ':'; --层次分隔符 c_Name_Value_Delimiter CONSTANT VARCHAR2(1) := '='; --字段值分隔符 c_Field_Delimiter CONSTANT VARCHAR2(1) := '|'; --字段分隔符 /** 取得字段值的位置: 如果是在第一个,不需要匹配'|' 1、找出filed字段的起始值,必须是该字段前后为空、或者前后都必须为4个特殊字符,方能匹配 */ FUNCTION Field_Pos(Pi_Source VARCHAR2, Pi_Param VARCHAR2) RETURN INT IS l_Lipos PLS_INTEGER; --字段结束位置 l_Length PLS_INTEGER; l_Bgchar VARCHAR2(20); l_Edchar VARCHAR2(20); BEGIN BEGIN l_Length := Length(Pi_Source); l_Lipos := Instr(Pi_Source, Pi_Param); --没有找到字段直接返回0 IF l_Lipos = 0 THEN RETURN(0); END IF; WHILE (l_Lipos < l_Length) LOOP l_Bgchar := ''; l_Edchar := ''; IF l_Lipos <> 1 THEN --操作字符串在中间的数据 l_Bgchar := Substr(Pi_Source, l_Lipos - 1, 1); END IF; --取出字段结束后的第一个字符 l_Edchar := Substr(Pi_Source, Length(Pi_Param) + l_Lipos, 1); --判断字符后的第一个字符是否为特殊字符,为特殊字符就认为找到该字段的值 IF ((l_Bgchar IN (c_Trans_Char, c_Level_Delimiter, c_Name_Value_Delimiter, c_Field_Delimiter) OR l_Bgchar IS NULL) AND (l_Edchar IN (c_Trans_Char, c_Level_Delimiter, c_Name_Value_Delimiter, c_Field_Delimiter) OR l_Edchar IS NULL)) THEN RETURN(l_Lipos); END IF; l_Lipos := Instr(Pi_Source, Pi_Param, l_Lipos + 1); IF l_Lipos = 0 THEN RETURN(0); END IF; END LOOP; --循环到结束都未找到,则表示无法找到 RETURN(0); END; END; /* 2、找出该filed是否有转义符,从filed字段后=处向前推转义符个数,拼成对应都转移字符串 */ FUNCTION Trans_Str(Pi_Source VARCHAR2, Pi_Param VARCHAR2, Pi_Fieldpos INT) RETURN VARCHAR2 IS l_Str VARCHAR2(20); l_Del_Len PLS_INTEGER := 0; --分隔符长度 l_Del_Bgpos PLS_INTEGER := 0; --=分隔符掉起始位置 l_Del_Edpos PLS_INTEGER := 0; --=分隔符掉结束位置 BEGIN BEGIN l_Del_Bgpos := Pi_Fieldpos + Length(Pi_Param); --=分隔符掉起始位置 --从filed结束后掉第一个与分割匹配的位置 l_Del_Edpos := Instr(Pi_Source, c_Name_Value_Delimiter, l_Del_Bgpos); --c_Name_Value_Delimiter := '='; --字段值分隔符 --分隔符长度: l_Del_Len := l_Del_Edpos - l_Del_Bgpos; l_Str := Substr(Pi_Source, l_Del_Bgpos, l_Del_Len); RETURN(l_Str); --c_Trans_Char := '\'; --转义字符 END; END Trans_Str; /** 3、从filed的=后一直匹配到第一个“转移字符+|”到字符,并且前后都没有转移字符为止,否则向后找,如果遍历完成后都没有,则返回空字符串 */ FUNCTION Value_Pos(Pi_Lsstr VARCHAR2, Pi_Field_Delimiter VARCHAR2) RETURN INT IS l_Lipos PLS_INTEGER; --字段结束位置 l_Length PLS_INTEGER; l_Char VARCHAR2(20); BEGIN BEGIN l_Length := Length(Pi_Lsstr); l_Lipos := 0; WHILE (l_Lipos <= l_Length) LOOP l_Lipos := l_Lipos + 1; l_Lipos := Instr(Pi_Lsstr, Pi_Field_Delimiter, l_Lipos); l_Char := Substr(Pi_Lsstr, l_Lipos - 1, 1); IF l_Char <> c_Trans_Char THEN RETURN(l_Lipos); END IF; END LOOP; RETURN(0); END; END Value_Pos; /** 替换掉值中掉转义符 */ FUNCTION Value_Notranc(Pi_Values VARCHAR2) RETURN VARCHAR2 IS l_Values VARCHAR2(32767); BEGIN BEGIN l_Values := Pi_Values; l_Values := REPLACE(l_Values, '\\', '\'); l_Values := REPLACE(l_Values, '\=', '='); l_Values := REPLACE(l_Values, '\|', '|'); l_Values := REPLACE(l_Values, '\:', ':'); RETURN(l_Values); END; END; /* 取报文信息,不支持字段名(Pi_Fielna)中有特殊字符":\=|"这4个字符 查找方式: 1、找出filed字段的起始值,必须是该字段前后为空、或者前后都必须为4个特殊字符,方能匹配 2、找出该filed是否有转义符,从filed字段后=处向前推转义符个数,拼成对应都转移字符串 3、从filed的=后一直匹配到第一个“转移字符+|”到字符,并且前后都没有转移字符为止,否则向后找,如果遍历完成后都没有,则返回空字符串 4、替换掉值中的转义符 */ FUNCTION Get_Pkgstr(Pi_Fildna IN VARCHAR2, --字段名 Pi_Pkgstr IN VARCHAR2) --报文字符串 RETURN VARCHAR2 IS --字段对应的值(如果是循环字段则返回第一个字段的值) l_Result VARCHAR2(32767); l_Lisublen INT; l_Lilen INT; l_Lsstr VARCHAR(32767); l_Lipos1 INT; l_Lipos2 INT; l_Fieldpos INT; --字段field的起始位置 l_Param VARCHAR(255); l_Source VARCHAR2(32767); l_Trans_Str VARCHAR(20); --转移字符串 BEGIN l_Source := Ltrim(Rtrim(Pi_Pkgstr)); l_Param := Ltrim(Rtrim(Pi_Fildna)); l_Result := NULL; l_Lipos1 := 0; l_Lipos2 := 0; l_Lisublen := 0; l_Lsstr := l_Source; l_Lilen := Length(l_Source); l_Fieldpos := 0; BEGIN --取得l_param字段到精确位置 l_Fieldpos := Field_Pos(l_Source, l_Param); --无法取得字段 IF l_Fieldpos <= 0 THEN --c_Trans_Char := '\'; --转义字符 l_Result := NULL; GOTO Oklable; END IF; --如果找到,则取值 l_Lsstr := Substr(l_Lsstr, l_Fieldpos, l_Lilen); ----当前转移级次转义符字符串 l_Trans_Str := Trans_Str(l_Source, l_Param, l_Fieldpos); l_Lipos1 := Instr(l_Lsstr, l_Trans_Str || c_Name_Value_Delimiter) + Nvl(Length(l_Trans_Str), 0); --c_Name_Value_Delimiter := '=' --字段值分隔符 --确定值到结束 l_Lipos2 := Value_Pos(l_Lsstr, l_Trans_Str || c_Field_Delimiter); IF (l_Lipos2 > (l_Lipos1 + 1)) THEN l_Result := Ltrim(Rtrim(Substr(l_Lsstr, l_Lipos1 + 1, l_Lipos2 - l_Lipos1 - 1))); --dbms_output.put_line(l_result); ELSIF (l_Lipos2 = (l_Lipos1 + 1)) THEN l_Result := NULL; ELSIF (l_Lipos1 = 0 AND l_Lipos2 = 0) THEN l_Result := NULL; ELSE l_Result := Ltrim(Rtrim(Substr(l_Lsstr, l_Lipos1 + 1, l_Lilen))); END IF; GOTO Oklable; <<oklable>> RETURN(TRIM(Value_Notranc(l_Result))); END; END Get_Pkgstr; END Pkg_Pub;
ORA-03001:未实施的功能 和 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
我现在一个存储过程中报错“ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值”,我怀疑是clob限制的问题,但是做实验时遇到下面的错误 我是写了一个很简单的存储过程,准备验证普通表中clob字段存储有没有大小限制,查资料好像说最大4G,我想验证一下。但是写存储过程将大量数据插入clob字段时报标题错误: 版本: SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for 32-bit Windows: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production 语句: 建表: create table t_wll_clob(mobile clob); 建存储过程: create or replace procedure p_wll_clob as v_clob clob; begin for v_11 in(select allcode from T_BUSI_MAIN_PRESEND3 where main1status='0') loop --allcode字段为clob类型,存储的是用逗号分隔的手机号码。for一共500条记录,每条200个用逗号分隔的手机号 v_clob := v_11.allcode||','||v_clob; end loop; insert into t_wll_clob(mobile) values v_clob; end ; 报错: insert into t_wll_clob(mobile) values v_clob; ORA-03001:未实施的功能 求高手解答。 另外我想知道: 1.普通表中clob字段最大限制是多少 2.存储过程中clob变量最大限制是多少 3.如果clob有限制,那么超过限制报错一般是怎么解决,是限制数据的大小还是?
求大神转换成oracle存储过程
USE [HAnewData0824] GO /****** Object: StoredProcedure [dbo].[ProcCustomPage] Script Date: 04/20/2017 15:28:18 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER OFF GO ALTER PROCEDURE [dbo].[ProcCustomPage] ( @TableName nvarchar(100), --要分页显示的表名 @KeyFields nvarchar(1000), --用于定位记录的主键(惟一键)字段,可以是逗号分隔的多个字段 @PageIndex int=1, --要显示的页码 @PageSize int=20, --每页的大小(记录数) @ShowFields nvarchar(1000)='', --以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段 @OrderFields nvarchar(1000)='', --以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC @WhereString nvarchar(max)='', --查询条件,不要加WHERE @RecordCount int OUTPUT --总页数 ) AS SET NOCOUNT ON --分页字段检查 IF ISNULL(@KeyFields,N'')='' BEGIN RAISERROR(N'分页处理需要主键(或者惟一键)',1,16) RETURN END --其他参数检查及规范 IF ISNULL(@PageIndex,0)<1 SET @PageIndex=1 IF ISNULL(@PageSize,0)<1 SET @PageSize=10 IF ISNULL(@ShowFields,N'')=N'' SET @ShowFields=N'*' IF ISNULL(@OrderFields,N'')=N'' SET @OrderFields=N'' ELSE SET @OrderFields=N'ORDER BY '+LTRIM(@OrderFields) IF ISNULL(@WhereString,N'')=N'' SET @WhereString=N'' ELSE SET @WhereString=N'WHERE ('+@WhereString+N')' --如果@RecordCount为NULL值,则计算总页数(这样设计可以只在第一次计算总页数,以后调用时,把总页数传回给存储过程,避免再次计算总页数,对于不想计算总页数的处理而言,可以给@RecordCount赋值) IF @RecordCount IS NULL BEGIN DECLARE @sql nvarchar(4000) SET @sql=N'SELECT @RecordCount=COUNT(*)' +N' FROM '+@TableName +N' '+@WhereString EXEC sp_executesql @sql,N'@RecordCount int OUTPUT',@RecordCount OUTPUT END --计算分页显示的TOPN值 DECLARE @TopN varchar(20),@TopN1 varchar(20) SELECT @TopN=@PageSize, @TopN1=(@PageIndex-1)*@PageSize --第一页直接显示 IF @PageIndex=1 EXEC(N'SELECT TOP '+@TopN +N' '+@ShowFields +N' FROM '+@TableName +N' '+@WhereString +N' '+@OrderFields) ELSE BEGIN --处理别名 IF @ShowFields=N'*' SET @ShowFields=N'a.*' --生成主键(惟一键)处理条件 DECLARE @Where1 nvarchar(4000),@Where2 nvarchar(4000), @s nvarchar(1000),@Field sysname SELECT @Where1=N'',@Where2=N'',@s=@KeyFields WHILE CHARINDEX(N',',@s)>0 SELECT @Field=LEFT(@s,CHARINDEX(N',',@s)-1), @s=STUFF(@s,1,CHARINDEX(N',',@s),N''), @Where1=@Where1+N' AND a.'+@Field+N'=b.'+@Field, @Where2=@Where2+N' AND b.'+@Field+N' IS NULL', @WhereString=REPLACE(@WhereString,@Field,N'a.'+@Field), @OrderFields=REPLACE(@OrderFields,@Field,N'a.'+@Field), @ShowFields=REPLACE(@ShowFields,@Field,N'a.'+@Field) SELECT @WhereString=REPLACE(@WhereString,@s,N'a.'+@s), @OrderFields=REPLACE(@OrderFields,@s,N'a.'+@s), @ShowFields=REPLACE(@ShowFields,@s,N'a.'+@s), @Where1=STUFF(@Where1+N' AND a.'+@s+N'=b.'+@s,1,5,N''), @Where2=CASE WHEN @WhereString='' THEN N'WHERE (' ELSE @WhereString+N' AND (' END+N'b.'+@s+N' IS NULL'+@Where2+N')' --执行查询 EXEC(N'SELECT TOP '+@TopN +N' '+@ShowFields +N' FROM '+@TableName +N' a LEFT JOIN(SELECT TOP '+@TopN1 +N' '+@KeyFields +N' FROM '+@TableName +N' a '+@WhereString +N' '+@OrderFields +N')b ON '+@Where1 +N' '+@Where2 +N' '+@OrderFields) END
为什么Datagrip不能识别\x01这个分隔符
假如我有一个csv文件,列分隔符是\x01,那我用datagrip将其导入到数据库的时候,怎么办?![图片说明](https://img-ask.csdn.net/upload/201902/26/1551114040_575202.png)
如何将某个文件(如:*.csv)导入oracle数据库并更新
现在要实现以导入并更新功能,不是使用数据库自带的导入功能, 而是使用编写程序的方式来实现; 具体功能如下: 1、 首先要判断该目录有没有此文件(*.CSV) 2、然后要读取里面的数据,(csv文件里的格式是以","分隔的) 我需要对其进行分组;(好和数据库里的字段想对应) csv文件格式的第一列是和数据库的某个字段是相对应的(就是更新条件) csv格式是"文本,值","文本,值"。。。。 哪位大神给力啊!急需 非常感谢
Oracle数据库存储需要:Ascii数值型字符串压缩
数值型字符串,比如:123.44 23.54 34.65....,总数大约86400个,以空格符分隔,采用什么压缩算法最为有效?压缩速度要快,压缩比率越小越好,可还原,无损!
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!)。 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线 方法 网站 书籍推荐! Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
神经⽹络可以计算任何函数的可视化证明
《Neural Networks and Deep Learning》读书笔记第四篇本章其实和前面章节的关联性不大,所以大可将本章作为小短文来阅读,当然基本的深度学习基础还是要有的。主要介绍了神经⽹络拥有的⼀种普遍性,比如说不管目标函数是怎样的,神经网络总是能够对任何可能的输入,其值(或者说近似值)是网络的输出,哪怕是多输入和多输出也是如此,我们大可直接得出一个结论:不论我们想要计算什么样的函数,...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
活到老,学到老,程序员也该如此
全文共2763字,预计学习时长8分钟 图片来源:Pixabay 此前,“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣,但苍蝇不叮无缝的蛋,无蜜不招彩蝶蜂。消息从何而来?真相究竟怎样?我们无从而知。我们只知道一个事实:不知从何时开始,程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后,好不容易“头秃了变强了”,即将步入为“高...
Vue快速实现通用表单验证
本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
关于裁员几点看法及建议
最近网易裁员事件引起广泛关注,昨天网易针对此事,也发了声明,到底谁对谁错,孰是孰非?我们作为吃瓜观众实在是知之甚少,所以不敢妄下定论。身处软件开发这个行业,近一两年来,对...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问