我怎么能写SQL代码,所以我只得到第一个名字?

时间:2018-06-14 11:34:26

标签: sql

来自此查询     从OBJ_R中选择名称

当前输出

^\s*[\.\#]{0}body(\s|\n)*\{[^\}]*(\s|\n)*margin(\s|\n)*\:\s*0\s*\;[^\}]*\}

如何获得此预期输出:

NAME
--------
Müller, Peter
Mettler, Hans
Casalugi, Maria

还有:

Name
--------
Müller
Mettler
Casalugi

2 个答案:

答案 0 :(得分:1)

OracleMySql以及SQLite

将SUBSTR与INSTR一起使用

select CASE WHEN INSTR(NAME,',') > 0 THEN SUBSTR(NAME,1,INSTR(NAME,',')-1) ELSE NAME END as Name from OBJ_R;
select CASE WHEN INSTR(NAME,',') > 0 THEN LTRIM(SUBSTR(NAME,INSTR(NAME,',')+1,LENGTH(NAME))) ELSE ' ' END as First_Name from OBJ_R;

PostgreSQL和MySql

使用带位置的SUBSTRING

select CASE WHEN POSITION(',' IN NAME) > 0 THEN SUBSTRING(NAME FROM 1 FOR POSITION(',' IN NAME)-1) ELSE NAME END as Name FROM OBJ_R;
select CASE WHEN POSITION(',' IN NAME) > 0 THEN TRIM(LEADING ' ' FROM SUBSTRING(NAME FROM POSITION(',' IN NAME)+1 FOR LENGTH(NAME))) ELSE '' END as First_Name FROM OBJ_R;

<强> Microsoft SQL Server

将SUBSTRING与CHARINDEXPATINDEX一起使用。

select case when charindex(',',NAME) > 0 then substring(NAME,0,charindex(',',NAME)-1) else NAME end as Name from OBJ_R;
select ltrim(substring(NAME, charindex(',', NAME)+1, len(NAME))) as first_name from OBJ_R;

<强> MySQL的

在MySql中还有其他一些技巧。

使用SUBSTRING_INDEX

select SUBSTRING_INDEX(NAME,', ', 1) as Name FROM OBJ_R;
select SUBSTRING_INDEX(NAME,', ',-1) as First_Name FROM OBJ_R;

将SUBSTRING与LOCATE一起使用

select CASE WHEN LOCATE(',',NAME) > 0 THEN SUBSTRING(NAME FROM 1 FOR LOCATE(',',NAME)-1) ELSE NAME END as Name FROM OBJ_R;
select CASE WHEN LOCATE(',',NAME) > 0 THEN LTRIM(SUBSTRING(NAME FROM LOCATE(',',NAME)+1 FOR LENGTH(NAME))) ELSE '' END as First_Name FROM OBJ_R;

使用LEFT和RIGHT

select LEFT(NAME, LOCATE(', ',NAME)-1) as Name FROM OBJ_R;
select RIGHT(NAME, LOCATE(' ,',REVERSE(NAME))-1) as First_Name FROM OBJ_R;

答案 1 :(得分:0)

实际上@jarlh提出了正确的选项,但这个查询仍会给你预期的结果。

const url = config.API_URL + 'jetsi';
axios({
  url: url,
  method: 'post',
  data: { fs: this.state.itemsToDownload },
  responseType: 'blob', // important
}).then((response) => {
  const url = window.URL.createObjectURL(new Blob([response.data]));
  const link = document.createElement('a');
  link.href = url;
  link.setAttribute('download', 'file.zip');
  document.body.appendChild(link);
  link.click();
});