sql语句中的"$"符号是什么意思
SELECTsum((现价-买入价)*持有数量);FROMstock_sl;WHERE股票代码;in;(SELECT股票代码FROMstock_name;WHERE"银行...
SELECT sum((现价-买入价)*持有数量) ;
FROM stock_sl ;
WHERE 股票代码 ;
in ;
(SELECT 股票代码 FROM stock_name ;
WHERE "银行" $ 股票简称) 1,这个语句中的$是什么意思 这个符号代表什么 位什么不能用like代替$ 2,这个语句是什么意思 回答正确满意又高分 谢谢各位高手 展开
FROM stock_sl ;
WHERE 股票代码 ;
in ;
(SELECT 股票代码 FROM stock_name ;
WHERE "银行" $ 股票简称) 1,这个语句中的$是什么意思 这个符号代表什么 位什么不能用like代替$ 2,这个语句是什么意思 回答正确满意又高分 谢谢各位高手 展开
2个回答
展开全部
以下希望对你有所帮助。
尽管声明字串常量的标准方法通常都很方便,但是如果字串包含很多单引号或者反斜杠, 那么理解字串的内容可能就会变得很苦涩,因为每个单引号都要加倍。 为了让这种场合下的查询更具可读性,PostgreSQL 允许另外一种称作"美元符包围"的字串常量声明办法。 一个通过美元符包围声明的字串常量由一个美元符号($),一个可选的零个或多个字符"记号", 另外一个美元符号,一个组成字串常量的任意字符的序列,一个美元符号,以及一个和开始这个美元符包围的记号相同的记号,和一个美元符号组成隐轮历。 比如,下面是两个不同的方法,用美元符包围声明了前面的例子:
$$Dianne's horse$$
$SomeTag$Dianne's horse$SomeTag$请注意,在美元符包围的字串里,单引号可以不用逃逸使用。 实际上,在一个美元符包围的字串里,没桐旁有什么字符需要逃逸: 字串内容总是按照字面内容写。反斜杠不是特殊的, 美元符自己也不是特殊的,除非它们和开标签的一部分匹配。
我们可以通过在不同嵌套级别使用不同的美元符引号字串常量来实现嵌套。 最常见的是写函数定义的时候。比如:
$function$
BEGIN
RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
END;
$function$这里,序列 $q$[\t\r\n\v\\]$q$ 表示一个美元符包围的字串文本灶搜 [\t\r\n\v\\], 在函数体被 PostgreSQL 执行的时候,它将被识别出来。 但是因为这个序列不匹配外层的美元符分隔符$function$, 所以只要考虑了外层字串,它就只是常量里面的一些额外的字符而已。
如果有标签的话,一个美元符包围的字串遵循和无引号包围的标识符相同的规则, 只是它不能包含美元符。标签是大小写相关的,因此 $tag$String content$tag$ 是正确的,而 $TAG$String content$tag$ 不对。
一个后面跟着关键字或者标识符的美元包围的字串必须用空白隔开; 否则美元符包围分隔符将会被认为前面标识符的一部分。
美元符包围不是 SQL 标准,但是在写复杂的字串文本的时候,它通常比标准的单引号语法更方便。 尤其是在其它常量里表现字串常量的时候更有用,比如经常在过程函数定义里面的。 如果用单引号语法,每个上面例子里的反斜杠都必须写四个,它们在作为字串文本分析的时候会减少为两个, 然后在函数执行的时候在内层字串常量里会再次被解析为一个。
尽管声明字串常量的标准方法通常都很方便,但是如果字串包含很多单引号或者反斜杠, 那么理解字串的内容可能就会变得很苦涩,因为每个单引号都要加倍。 为了让这种场合下的查询更具可读性,PostgreSQL 允许另外一种称作"美元符包围"的字串常量声明办法。 一个通过美元符包围声明的字串常量由一个美元符号($),一个可选的零个或多个字符"记号", 另外一个美元符号,一个组成字串常量的任意字符的序列,一个美元符号,以及一个和开始这个美元符包围的记号相同的记号,和一个美元符号组成隐轮历。 比如,下面是两个不同的方法,用美元符包围声明了前面的例子:
$$Dianne's horse$$
$SomeTag$Dianne's horse$SomeTag$请注意,在美元符包围的字串里,单引号可以不用逃逸使用。 实际上,在一个美元符包围的字串里,没桐旁有什么字符需要逃逸: 字串内容总是按照字面内容写。反斜杠不是特殊的, 美元符自己也不是特殊的,除非它们和开标签的一部分匹配。
我们可以通过在不同嵌套级别使用不同的美元符引号字串常量来实现嵌套。 最常见的是写函数定义的时候。比如:
$function$
BEGIN
RETURN ($1 ~ $q$[\t\r\n\v\\]$q$);
END;
$function$这里,序列 $q$[\t\r\n\v\\]$q$ 表示一个美元符包围的字串文本灶搜 [\t\r\n\v\\], 在函数体被 PostgreSQL 执行的时候,它将被识别出来。 但是因为这个序列不匹配外层的美元符分隔符$function$, 所以只要考虑了外层字串,它就只是常量里面的一些额外的字符而已。
如果有标签的话,一个美元符包围的字串遵循和无引号包围的标识符相同的规则, 只是它不能包含美元符。标签是大小写相关的,因此 $tag$String content$tag$ 是正确的,而 $TAG$String content$tag$ 不对。
一个后面跟着关键字或者标识符的美元包围的字串必须用空白隔开; 否则美元符包围分隔符将会被认为前面标识符的一部分。
美元符包围不是 SQL 标准,但是在写复杂的字串文本的时候,它通常比标准的单引号语法更方便。 尤其是在其它常量里表现字串常量的时候更有用,比如经常在过程函数定义里面的。 如果用单引号语法,每个上面例子里的反斜杠都必须写四个,它们在作为字串文本分析的时候会减少为两个, 然后在函数执行的时候在内层字串常量里会再次被解析为一个。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询