7

I am not a new QGIS user, however, I am still confused concerning the quotation marks syntax ('single' vs "double").

I know something about the quotation marks and the way they are applied in Python scripting (i.e. comments, strings etc.).

There are even some related questions:

Nevertheless, I would like to clarify the details regarding the quotation marks ('single' vs "double") in the scope of QGIS.

For instance, if I type something in the Expression dialogue I will have a different output.

  • "something", it is written as

something1

The Output is NULL.

  • 'something', it is shown as

something2

The output is 'something' as a string.

So, my questions are:

  1. What is the syntax/meaningful difference between quotation marks ('single' vs "double") in QGIS?
  2. Are there any other circumstances when other types of quotation marks are used in QGIS, for instance, triple quotation marks as in Python?
14

Double quotes indicate that the string represents the name of an attribute while a single quote is a literal string.

So in your first case you get NULL because you don't have an attribute called something.

  • 5
    My mnemonic for this is "Single for Strings, Double for Data". So to compare a data field with a string value you'd use "name" = 'Fred' – Spacedman Nov 6 '18 at 19:31
10

Here is the answer directly from QGIS help:

column name "column name" → Value of the field column name, take care to not be confused with simple quote, see below

'string' → a string value, take care to not be confused with double quote, see above

5

Double marks refer to columns in the attribute table, single marks to a string value. E.g. CASE WHEN "something" > 100 THEN 'a lot' ELSE 'not so much' checks the size of integer values in your column and adds a string to fields in the attribute table based on that size.

  • 1
    Does this mean that the value of an attribute "something" is bigger than string '100'? – user30184 Nov 6 '18 at 14:49
  • 1
    If the value of a field in column "something" is bigger than 100, then I write "a lot" into a new column, else the other text is written. – Erik Nov 6 '18 at 15:13
  • 1
    I asked because I do not know the syntax that QGIS is using. In databases '100' means a string and then '101'>'100' but also '99'>'100' because 9 comes after 1 in alphanumeric order. Does QGIS make difference and is it possible to compare by numbers WHEN "something" > 100? – user30184 Nov 6 '18 at 17:10
  • 1
    Actually '100' really means a string, sorry, gonna edit it. Comparison of numbers is possible, yes. – Erik Nov 7 '18 at 8:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.