рдореИрдВ Google Code рдХреЗ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдирд╡реАрдирддрдо рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ рдЬреЛ рдореБрдЭреЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдорд┐рд▓реА рдереА:
sql: Scan error on column index 7: unsupported driver -> Scan pair: <nil> -> *string
рдореИрдВ рдФрд░ рдЬрд╛рдВрдЪ рдХрд░реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЗрд╕ рдмреАрдЪ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ?
рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдиреЗ NULL
рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦрд╛рд▓реА []byte
рд▓реМрдЯрд╛рдпрд╛ рдЬрд┐рд╕рд╕реЗ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╕реЗ NULL
рдорд╛рди рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред
рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдЕрдВрдХ #20 рджреЗрдЦреЗрдВред
рдЗрд╕ рд▓рдХреНрд╖реНрдп рдХреЗ рдХрд╛рд░рдг database/sql
рдкреИрдХреЗрдЬ рджреНрд╡рд╛рд░рд╛ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛ рджреА рдЧрдИ рд╣реИ:
* Be flexible with type conversions, but be paranoid about silent
truncation or other loss of precision.
рдпрджрд┐ рдХреЙрд▓рдо рдореЗрдВ NULL рдорд╛рди рд╣реЛ рддреЛ рдЖрдкрдХреЛ http://golang.org/pkg/database/sql/#NullString рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдореБрдЭреЗ рдкреБрд░рд╛рдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рд▓рдЧрднрдЧ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдорд╛рдпрдиреЛрдВ рдореЗрдВ, рдЧреЛ рдХрд╛ "рд╢реВрдиреНрдп рдорд╛рди рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ" рдмрд╣реБрдд рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЯрди рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рд╣рд░ рдЬрдЧрд╣ рдмрд┐рдЦреЗрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЗрд╕реЗ рдПрдХ рд╣реА рд╕реНрдерд╛рди рдкрд░ рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдореБрдЭреЗ рдПрдХ рдиреНрдпреВрд▓ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред NullString, рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдмрджрд╕реВрд░рдд рдХреЛрдб-рд╡рд╛рд░ рд╣реИред
рдиреНрдпреВрд▓ рд╕рд┐рд░реНрдл рдПрдХ рджреБрдГрд╕реНрд╡рдкреНрди рд╣реИ рдФрд░ рдореИрдВ рдПрдирдпреВрдПрд▓рдПрд▓ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ _my_ рдЯреЗрдмрд▓ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓рдо рдХреЛ рдиреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА SHOW PROCESSLIST рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдореЗрдВ рдПрдХ NULL рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдореЗрд░рд╛ рдХреЛрдб рдмрд╕ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ; рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдмрд╕ рдПрдХ рдирд▓рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕рдХреА .Valid рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдмрд╕ рдЗрд╕рдХреА .String рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХреЙрд▓рдо рдиреНрдпреВрд▓ рд╣реЛрдиреЗ рдкрд░ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓рд┐рдП NULL рдХреЛ рд╢реВрдиреНрдп-рдорд╛рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдмрддрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ (рдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛, рдЪрд░ рдореЗрдВ рдХреЙрд▓рдо рдХреЛ рд╕реНрдХреИрди рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрдЧрд╛) рдмрд╣реБрдд рдХрдард┐рди рдФрд░ рддреНрд░реБрдЯрд┐ рдкреНрд░рд╡рдг рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛ (рдФрд░ рдирд╣реАрдВ- рднрд╡рд┐рд╖реНрдп рдХреЗ рд╕рдмреВрдд) рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╛, рдЕрдЧрд░ рдореБрдЭреЗ рд╕рднреА рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреЛрдб рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП, рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдореМрдХреЗ рд▓реЗ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЙрд▓рдо рдП) рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧреИрд░-рд╢реВрдиреНрдп рд╣реИ рдмреА) рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рд░рд╣реЗрдЧрд╛ред
рдореИрдВ рдЧреЛ рдХреА "рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢реВрдиреНрдп рдорд╛рди" рдиреАрддрд┐ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рдмреЗрд╕/рдПрд╕рдХреНрдпреВрдПрд▓ рдкреИрдХреЗрдЬ рдХреЛ рднреА рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рдЖрдк рдЕрднреА рднреА рдирд▓ * рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдп рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдЧреЛ 2 (рдЙрд╕рдХреЗ рд▓рд┐рдП рдореБрдЭрд╕реЗ +1) рдореЗрдВ рдмрджрд▓ рджреЗрдВред
рдЕрднреА рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдЙрд╕рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрдИ рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред PostgreSQL рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ (рдХрдард┐рди рдореИрдВ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдорд╛рдирддрд╛ рд╣реВрдВ)ред рдореИрдВ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ред
рд╕реНрдХреИрди рдХреА рдЧрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ str = nullStr.Value
рдЕрдзрд┐рдХ рдЕрдм рдХреЗ рд▓рд┐рдП рдХрдо рдмреБрд░рд╛рдИ рд╣реИред
рдореИрдВрдиреЗ рд╢реВрдиреНрдп NULL
рдорд╛рдиреЛрдВ рдореЗрдВ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛: https://github.com/Go-SQL-Driver/MySQL/tree/zeroNULL
рд▓реЗрдХрд┐рди рдбреНрд░рд╛рдЗрд╡рд░ рд╕реНрддрд░ рдкрд░ рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рд╢реВрдиреНрдп рдорд╛рди рдХреЛ []byte{}
рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк рдЗрд╕реЗ string
рдФрд░ []byte
рдкрд░ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ 0
рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реНрдХреИрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ "0" рдПрдХ string
/ []byte
ред
рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреИрд╕реЗ рд╕реНрдХреИрди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп
рдирд┐рдпрддрд┐ [i] рдХреЛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛, рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдбреНрд░рд╛рдЗрд╡рд░ рдмрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ
рдЧрдВрддрд╡реНрдп [рдореИрдВ]?
dest
рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ []interface{}
рдЯреБрдХрдбрд╝рд╛ рд╣реИред interface{}
рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди nil
ред рддреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЛ рдЫреЛрдбрд╝ dest[i]
рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реА рдкрд░рд┐рдгрд╛рдо рд╣реИ dest[i]=nil
рдореИрдВрдиреЗ рд╢рд╛рдЦрд╛ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ред рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдореЗрд░реА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдореИрдВ рдЕрдкрдирд╛ рдЕрдкрдбреЗрдЯ рдХрд░реВрдБрдЧрд╛ рддреЛ рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдКрдБрдЧрд╛
рдЪрд╛рд▓рдХ рдХреА рдкреНрд░рддрд┐ред
рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдЖрдпрд╛:
рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдмрд╕ [] рдмрд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ nil-[]byte рдкрд░рд┐рдгрд╛рдо рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛:
string([]byte("")) // => ""
string([]byte(nil)) // => ""
рд╢рд╛рдпрдж рдЗрд╕реЗ рдЦреБрд▓рд╛ рд░рдЦреЗрдВ, рд╢рд╛рдпрдж рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛ
рд╕рдорд╛рдзрд╛рди: https://github.com/guregu/null
рдЪреВрдВрдХрд┐ рдпрд╣ рдкреГрд╖реНрда рдЕрднреА рднреА рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдХрд╛рдлреА рдКрдВрдЪрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдореЗрд░реЗ рджреЛ рд╕реЗрдВрдЯ:
рдЖрдк рдЗрд╕реЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рднреА рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ, рдЖрдИрдПрдордУ, рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рд╕реНрддрд░ред рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
SELECT
id,
COALESCE(name, '') as name
FROM users
рдЗрд╕ рддрд░рд╣, рдпрджрд┐ name
рдореЗрдВ NULL рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдХреИрди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Coalesce рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред
рдореБрдЭреЗ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢реВрдиреНрдп рд╣реЛрдиреЗ рдкрд░ рдЕрдкрд╡рд╛рдж рдХреНрдпреЛрдВ рдлреЗрдВрдХрддрд╛ рд╣реИ?
рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ
рдЖрдк рдЗрд╕рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреЙрдЗрдВрдЯрд░ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var txt *string
checkErr(result.Scan(&txt))
// do something with type *string
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
@Dynom рдорд╣рд╛рди рдЯрд┐рдкреНрдкрдгреА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рднреА рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ sql.NullString
рдкреНрд░рдХрд╛рд░ рдХрд╛рдо рдЖрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк Scan
рдХреЗ рдЧрдВрддрд╡реНрдп рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЬрд┐рд╕реЗ рдореИрдВ рдЧреЛ рдкрдХреНрд╖ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ) рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдореВрд░реНрдд рд╕реНрддрд░)ред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╣ nil
рдорд╛рди рдФрд░ рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЛ рдмрд░рдХрд░рд╛рд░ рд░рдЦрддрд╛ рд╣реИ ред
рдирд▓рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЬреЗрд╕рди рдЬреИрд╕реА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рджреЗрд╡ рдХреЛ рдирдХреНрд╢рд╛ рд╡реАрдУ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдХ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рднреА рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИ рддреЛ рднрд╛рд╖рд╛ рдХреА рд╕реАрдорд╛ рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЪреВрдВрдХрд┐ рдпрд╣ рдкреГрд╖реНрда рдЕрднреА рднреА рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рдХрд╛рдлреА рдКрдВрдЪрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдореЗрд░реЗ рджреЛ рд╕реЗрдВрдЯ:
рдЖрдк рдЗрд╕реЗ рдЙрд╕ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рднреА рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ, рдЖрдИрдПрдордУ, рд╕рдорд╕реНрдпрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ: рдбреЗрдЯрд╛рдмреЗрд╕ рдПрдмреНрд╕реНрдЯреНрд░реИрдХреНрд╢рди рд╕реНрддрд░ред рдЖрдк рдирд┐рдореНрди рдХрд╛рд░реНрдп рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЗрд╕ рддрд░рд╣, рдпрджрд┐
name
рдореЗрдВ NULL рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрдХреИрди рдХрд░рддреЗ рд╕рдордп рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред Coalesce рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдорд░реНрдерд┐рдд рд╣реИред